ΠΠ΄ΡΡ Π½ΠΎΠ²Π΅Π½ ΠΎΡ
Β«ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΠΈΠ»ΠΈ Π‘Π΅ΠΌΠ°Π½ΡΠΈΡΠ½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Linux VitisΒ»,
ΡΠ΅ΡΠΈΡ
Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ ΡΠ²ΠΎΠΉ Π°Π½Π°Π»ΠΎΠ³ Π½Π° ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° vitis Π·Π° PowerShell Core.
ΠΠ°ΡΠΎ Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π΄Π° Π³ΠΎ ΠΏΡΠ°Π²Ρ
ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, vitis ΡΠ°ΠΌΠΎ Π·Π° Linux.
ΠΠ° Π²ΡΠΎΡΠΎ ΠΌΡΡΡΠΎ, ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Β«ΡΡΡΠ±ΠΈΒ» Π² PowerShell.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΆΠ΅Π»Π°Π΅Ρ Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ ΠΊΡΠΎΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π° ΡΡΠΈΠ»ΠΈΡΠ°, ΠΈΠ·Π±ΡΠ°Ρ .Net Core.
ΠΡΠ΅Π΄ΠΈΡΡΠΎΡΠΈΡ
ΠΠΎΠ½Π°ΡΠ°Π»ΠΎ Π±Π΅ΡΠ΅ Ρ
Π°ΠΎΡ. ΠΠΎΡΠ»Π΅ Π½Π° Π΄ΠΈΡΠΊΠ° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ
Π° ΠΏΠ°ΠΏΠΊΠΈ.
ΠΠΎ Ρ
Π°ΠΎΡΡΡ Π²ΡΠ΅ ΠΎΡΠ΅ Π²Π»Π°ΡΡΠ²Π°ΡΠ΅. Π ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ
Π° ΡΠ°Π³ΠΎΠ²Π΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ½ΠΎΠ²Π΅ ΠΈ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΈ Π½Π° ΡΠ°Π³ΠΎΠ²Π΅ΡΠ΅. ΠΠΎ Ρ
Π°ΠΎΡΡΡ Π·Π°Π²Π»Π°Π΄Ρ ΠΈ ΡΡΡ
. Π Π±ΡΡ
Π° ΠΈΠ·ΠΌΠΈΡΠ»Π΅Π½ΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ.
ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ°
Π€Π°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΎΡ ΠΏΠ°ΠΏΠΊΠΈ, Π° Π² Β«ΠΊΡΠΏΡΠΈΠ½Π°Β», Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ. ΠΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ.
ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΠ°ΠΉΠ», ΠΏΠΎ-ΡΠ΄ΠΎΠ±Π½ΠΎ Π΅ Π΄Π° Π²ΡΠ²Π΅Π΄Π΅ΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈΡΠ΅, ΠΊΡΠΌ ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π·Π° Π·Π°ΠΏΠΎΠΌΠ½ΡΠ½Π΅, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π² ΠΊΠΎΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°.
ΠΠΎ ΡΠ°ΠΊΠ°Π²Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎ Π½ΠΈΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ Π½Π΅ Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ° Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄, ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ ΠΈ Ρ.Π½.
Π’Ρ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΠ΅ΠΌΠ΅ΠΉΠ½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ, ΠΌΡΠ·ΠΈΠΊΠ°, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅
Π ΡΠ°ΠΊΠ°, Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡΡΠ°.
ΠΠ΅ΠΊΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Graphile:
# install.ps1 Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΊΠΎΠ΄ΠΎΠΌ
PS D:SourcereposGraphile> .install.ps1ΠΡΡΠ²ΠΎ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Graphile Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ°:
# ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ
PS C:UsersDellGraphileTest> Import-Module GraphilePowerShell
# ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Graphile Π² ΠΏΠ°ΠΏΠΊΠ΅
PS C:UsersDellGraphileTest> Init-Graphile
C:UsersDellGraphileTestgraphile.dbΠ ΡΠ°ΠΊΠ°, Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π½ΠΎΠ²Π° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ:
PS C:UsersDellGraphileTest> New-Category -Name "music"
musicΠΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅:
PS C:UsersDellGraphileTest> Get-ChildItem "D:MusicPink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach {
>> Add-FileToCategory -File $_ -Categories "music"
>> }ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°Ρ Π° ΠΊΠ°ΠΊΠ²ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ :
- ΠΠΎΠ»ΡΡΠΈΡ
ΡΠΏΠΈΡΡΠΊ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ°
Pink Floyd - The Wall - ΠΡΠ΅ΠΊΠΈ ΡΠ°ΠΉΠ» ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Ρ Π² ΠΏΡΠ»Π΅Π½ ΠΏΡΡ Π΄ΠΎ Π½Π΅Π³ΠΎ
- ΠΠΎΠ±Π°Π²ΠΈΡ
Π²ΡΠ΅ΠΊΠΈ ΡΠ°ΠΉΠ» Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡΠ°
music
Π‘Π΅Π³Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π΄Π°Π»ΠΈ Π½Π°ΠΈΡΡΠΈΠ½Π° ΡΠΌΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡΠ°:
PS C:UsersDellGraphileTest> List-Graphiles | Format-TableΠ©Π΅ Π±ΡΠ΄Π΅ ΠΈΠ·Π²Π΅Π΄Π΅Π½ ΡΠΏΠΈΡΡΠΊ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ:
CategoriesNames Id Categories Name ExtensionΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅:
New-Category -Name "the-wall"
New-Category -Name "alan-parsons"
List-Graphiles -Categories "music" | foreach { Add-GraphileToCategory -Categories "the-wall" -Files $_.Name }
Get-ChildItem "D:MusicThe Alan Parsons Project - Turn of a Friendly Card" -File -Recurse | foreach { $_.FullName } | foreach { Add-FileToCategory -File $_ -Categories "music", "alan-parsons" }Π©Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅:
List-Graphiles -Categories "alan-parsons" | Format-TableΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ΡΠ΅ ΠΈΠ·Π²Π΅Π΄Π΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ Π½Π° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡΠ° alan-parsons.
ΠΠΎΠ²Π΅ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° Π±ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ!
New-Category -Name "images"
Get-ChildItem "D:ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ" -File -Recurse | foreach { $.FullName } | foreach {
Add-FileToCategory -File $_ -Categories "images"
}ΠΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅:
List-Graphiles -Categories "images" | Format-TableΠΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ!
ΠΠΎ ΡΠΎΠ²Π° Π΅ ΡΠ°ΠΌΠΎ Π½Π°ΡΠ°Π»ΠΎΡΠΎ. ΠΠ·Π½Π΅ΡΠ΅ΡΠ΅ ΡΠ²ΠΎΡΡΠ° ΠΎΠ±ΠΈΡΠ°ΠΉΠ½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π² Graphile ΠΈ ΠΏΠΎΠ»ΡΡΠ΅ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅.
ΠΡΠΊΡΠ΄Π΅ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»Ρ Graphile
ΠΡΠΎ Π² GitLab Π½Π° Graphile.
ΠΠΈΡΠ΅Π½Π· MIT, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΄ΠΎΡΠΈ Π² ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ ΡΠ΅Π»ΠΈ.
ΠΡΠ΄Π΅ΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎΠ²Π° Π΅ PowerShell, Π° Π½Π΅ ΡΠ΅Π³Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ΄ .NET Core.
ΠΠ°ΠΊ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅:
- ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Microsoft.PowerShell.SDK
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΠ° PowerShell ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ°ΠΉΡΠ΅ Graphile.
ΠΠΊΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡΡ Π²ΠΈ Π΅ Ρ
Π°ΡΠ΅ΡΠ°Π», ΠΏΡΠ°Π²Π΅ΡΠ΅ ΠΊΠΎΠΌΠΈΡΠΈ, merge requestΠΈ ΡΡΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄ΠΈΡΠΊΡΡΠΈΠΈ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ΡΠΎ! ΠΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΈ ΡΠ΅ Π½Π°ΡΠ»Π°Π΄Π΅ΡΠ΅!
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
