ΠΠ΄ΠΎΡ
Π½ΠΎΠ²ΠΈΠ²ΡΠΈΡΡ
«ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ, ΠΈΠ»ΠΈ Π‘Π΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π»Ρ 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
ΠΠΎΡ
ΠΠΈΡΠ΅Π½Π·ΠΈΡ MIT
, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π°ΠΆΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ
ΡΠ΅Π»ΡΡ
.
ΠΡΠ΄ΡΡΠ΅Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ PowerShell, Π° Π½Π΅ Ρ ΡΡ ΡΡ-ΠΌΡΡ ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ ΠΏΠΎΠ΄ .NET Core.
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ Microsoft.PowerShell.SDK
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ PowerShell ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ Graphile.
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, Π΄Π΅Π»Π°ΠΉΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, merge request
‘Ρ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Π·Π° ΠΏΡΠΎΡΡΠ΅Π½ΠΈΠ΅! ΠΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡΠ΅ΡΡ!
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com