Ispirato da
«Categorie invece di directory, o 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
Innanzitutto, vitis solo per Linux.
In secondo luogo, voglio usare le «pipe» in PowerShell.
Poiché ho voluto creare uno strumento multipiattaforma, ho scelto .Net Core.
Antefatti
All'inizio regnava il caos. Poi sono apparse le cartelle sul disco.
Ma il caos era ancora presente. E sono emersi tag, così come sottotag e sinonimi di tag. Ma il caos ha acchiappato anche loro. E sono state inventate categorie.
Concetto
I file non sono memorizzati in una gerarchia di cartelle, ma in uno «stivale», con categorie specifiche. Un file può appartenere a più categorie.
Se è necessario trovare un file, è più facile inserire le categorie a cui appartiene. È molto più semplice da ricordare rispetto alle cartelle in cui è memorizzato.
Ma un tale sistema di file non è assolutamente adatto per memorizzare codice, sorgenti, ecc.
È destinato per la memorizzazione, ad esempio, di foto di famiglia, musica, documenti.
Utilizzo
Bene, cominciamo con la dimostrazione.
Installiamo Graphile:
# install.ps1 находится в корневой папке с кодом
PS D:SourcereposGraphile> .install.ps1Iniziamo a inizializzare Graphile nella cartella:
# Импортируем установленный модуль
PS C:UsersDellGraphileTest> Import-Module GraphilePowerShell
# Инициализируем Graphile в папке
PS C:UsersDellGraphileTest> Init-Graphile
C:UsersDellGraphileTestgraphile.dbQuindi, abbiamo impostato tutto. Ora possiamo creare una nuova categoria:
PS C:UsersDellGraphileTest> New-Category -Name "music"
musicAggiungiamo 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 ad essi
- Ho aggiunto ogni file nella categoria
music
Ora verifichiamo se abbiamo veramente 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" }Controlliamo i file:
List-Graphiles -Categories "alan-parsons" | Format-TableIl comando restituirà tutti i file che appartengono alla categoria alan-parsons.
Più file al dio dei sistemi di file!
New-Category -Name "images"
Get-ChildItem "D:Immagini" -File -Recurse | foreach { $.FullName } | foreach {
Add-FileToCategory -File $_ -Categories "images"
}Controlliamo:
List-Graphiles -Categories "images" | Format-TableFunziona tutto!
Ma questo è solo l'inizio. Esporta il tuo normale sistema di file in Graphile e ottieni un'ottima organizzazione dei file.
Dove scaricare Graphile
Ecco su GitLab di Graphile.
Licenza MIT, quindi puoi utilizzarlo anche per scopi commerciali.
Futuro del progetto
Essendo PowerShell e non un giocattolo, è possibile creare un'interfaccia grafica su .NET Core.
Come fare:
- Installare il pacchetto Microsoft.PowerShell.SDK
- Utilizzare la classe PowerShell e chiamare Graphile.
Se ti è piaciuto il progetto, fai commit, merge requeste crea discussioni.
Grazie per aver letto! Usalo e goditi!
Fonte: habr.com
