ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ вмСсто Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Π·Π° ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅

Π’Π΄ΡŠΡ…Π½ΠΎΠ²Π΅Π½ ΠΎΡ‚ статия

Β«ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ вмСсто Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, ΠΈΠ»ΠΈ Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΡ‡Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма Π·Π° 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"
>> }

На Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ…Π° ΠΊΠ°ΠΊΠ²ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…:

  1. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ… списък с Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° Pink Floyd - The Wall
  2. ВсСки Ρ„Π°ΠΉΠ» ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ… Π² пълСн ΠΏΡŠΡ‚ Π΄ΠΎ Π½Π΅Π³ΠΎ
  3. Π”ΠΎΠ±Π°Π²ΠΈΡ… всСки Ρ„Π°ΠΉΠ» Π² катСгорията 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.

Как Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅:

  1. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Microsoft.PowerShell.SDK
  2. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ класа PowerShell ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ°ΠΉΡ‚Π΅ Graphile.

Ако ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Π²ΠΈ Π΅ харСсал, ΠΏΡ€Π°Π²Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΈΡ‚ΠΈ, merge requestΠΈ ΡΡŠΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ дискусии.

Благодаря Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ! ΠŸΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΈ сС насладСтС!

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster