Ispirato da
«Categorie invece di directory, o un sistema di file semantico per Linux Vitis»,
ho deciso di creare la mia analogia dello strumento vitis per PowerShell Core.
Perché ho iniziato a farlo
Prima di tutto, vitis solo per Linux.
In secondo luogo, voglio usare le «pipe» in PowerShell.
Poiché volevo realizzare uno strumento multipiattaforma, ho scelto .Net Core.
Contesto
All'inizio c'era il caos. Poi sono comparse delle cartelle sul disco.
Ma il caos regnava ancora. Sono emerse etichette, così come sottotag e sinonimi delle etichette. Ma il caos ha preso anche loro. E sono state inventate le categorie.
Concetto
I file non sono memorizzati in una gerarchia di cartelle, ma in un «mucchio», con determinate categorie. Un file può appartenere a più categorie.
Se hai bisogno di trovare un file, è più comodo inserire le categorie a cui appartiene. È molto più facile da ricordare rispetto a quali cartelle lo ospitano.
Ma un tale sistema di file non è affatto adatto per memorizzare codice, sorgenti, ecc.
È destinato a memorizzare, ad esempio, foto di famiglia, musica, documenti.
L'utilizzo di
Bene, cominciamo con la dimostrazione.
Installa Graphile:
# install.ps1 находится в корневой папке с кодом
PS D:SourcereposGraphile> .install.ps1Innanzitutto inizializziamo Graphile nella cartella:
# Импортируем установленный модуль
PS C:UsersDellGraphileTest> Import-Module GraphilePowerShell
# Инициализируем Graphile в папке
PS C:UsersDellGraphileTest> Init-Graphile
C:UsersDellGraphileTestgraphile.dbQuindi, abbiamo tutto impostato. Ora possiamo creare una nuova categoria:
PS C:UsersDellGraphileTest> New-Category -Name "music"
musicAggiungiamo i file:
PS C:UsersDellGraphileTest> Get-ChildItem "D:MusicPink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach {
>> Add-FileToCategory -File $_ -Categories "music"
>> }Per chi non ha capito cosa ho fatto:
- Ho ottenuto l'elenco dei file nella cartella
Pink Floyd - The Wall - Ogni file è stato convertito nel percorso completo
- Ho aggiunto ogni file alla categoria
music
Adesso verifichiamo se abbiamo effettivamente aggiunto i file alla categoria:
PS C:UsersDellGraphileTest> List-Graphiles | Format-TableVerrà restituito un elenco nel formato:
CategoriesNames Id Categories Name ExtensionAggiungiamo altre categorie e file:
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" }Verifichiamo i file:
List-Graphiles -Categories "alan-parsons" | Format-TableIl comando restituirà tutti i file appartenenti alla categoria alan-parsons.
Più file al dio dei file system!
New-Category -Name "images"
Get-ChildItem "D:Immagini" -File -Recurse | foreach { $.FullName } | foreach {
Add-FileToCategory -File $_ -Categories "images"
}Controllando:
List-Graphiles -Categories "images" | Format-TableTutto funziona!
Ma questo è solo l'inizio. Esporta il tuo file system tradizionale in Graphile e ottieni una straordinaria organizzazione dei file.
Dove scaricare Graphile
Ecco da GitLab di Graphile.
Licenza MIT, quindi puoi usarlo anche per scopi commerciali.
Il futuro del progetto
Dal momento che si tratta di PowerShell, e non di un giocattolo, è possibile creare un'interfaccia grafica per .NET Core.
Come fare:
- Installare il pacchetto Microsoft.PowerShell.SDK
- Utilizzare la classe PowerShell e chiamare Graphile.
Se ti è piaciuto il progetto, fai commit, richiesta di mergee inizia discussioni.
Grazie per aver letto! Usufruiscine e divertiti!
Fonte: habr.com
