Inspirován
„Kategorie místo adresářů, nebo Sémantický souborový systém pro Linux Vitis,“
rozhodl jsem se vytvořit svůj vlastní ekvivalent nástroje vitis pro PowerShell Core.
Proč jsem to začal dělat
Za prvé, vitis pouze pro Linux.
Za druhé, chtěl jsem používat „trubky“ v PowerShell.
Protože jsem chtěl vytvořit multiplatformní nástroj, zvolil jsem .Net Core.
Pozadí
Nejprve byl chaos. Pak se na disku objevily složky.
Ale chaos stále panoval. A objevily se značky, stejně jako podznačky a synonyma značek. Ale chaos je také ovládl. A byly vymýšleny kategorie.
Koncept
Soubor není uchováván v hierarchii složek, ale v „hromadě“, s určitými kategoriemi. Jeden soubor může patřit do několika kategorií.
Pokud potřebujete najít soubor, je pohodlnější zadat kategorie, do kterých patří. To je mnohem snazší zapamatovat si, než ve kterých složkách je uložen.
Ale takový souborový systém rozhodně není vhodný pro ukládání kódu, zdrojových souborů atd.
Je určen pro ukládání například rodinných fotografií, hudby, dokumentů.
Použití
Tak co, pojďme k demonstraci.
Nainstalujeme Graphile:
# install.ps1 находится в корневой папке с кодом
PS D:SourcereposGraphile> .install.ps1Nejprve inicializujeme Graphile ve složce:
# Импортируем установленный модуль
PS C:UsersDellGraphileTest> Import-Module GraphilePowerShell
# Инициализируем Graphile в папке
PS C:UsersDellGraphileTest> Init-Graphile
C:UsersDellGraphileTestgraphile.dbTakže, vše jsme nastavili. Teď můžeme vytvořit novou kategorii:
PS C:UsersDellGraphileTest> New-Category -Name "music"
musicPřidáme soubory:
PS C:UsersDellGraphileTest> Get-ChildItem "D:MusicPink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach {
>> Add-FileToCategory -File $_ -Categories "music"
>> }Pro ty, kteří nepochopili, co jsem udělal:
- Získal jsem seznam souborů ve složce
Pink Floyd - The Wall - Každý soubor jsem převedl na úplnou cestu k němu
- Přidal jsem každý soubor do kategorie
music
Teď zkontrolujeme, zda jsme skutečně přidali soubory do kategorie:
PS C:UsersDellGraphileTest> List-Graphiles | Format-TableBude vypsán seznam ve formátu:
CategoriesNames Id Categories Name ExtensionPřidáme další kategorie a soubory:
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" }Zkontrolujeme soubory:
List-Graphiles -Categories "alan-parsons" | Format-TablePříkaz vypíše všechny soubory, které patří do kategorie alan-parsons.
Více souborů bohu souborových systémů!
New-Category -Name "images"
Get-ChildItem "D:Obrázky" -File -Recurse | foreach { $.FullName } | foreach {
Add-FileToCategory -File $_ -Categories "images"
}Kontrolujeme:
List-Graphiles -Categories "images" | Format-TableVše funguje!
Ale to je jen začátek. Exportujte svůj běžný souborový systém do Graphile a získejte skvělé uspořádání souborů.
Odkud stáhnout Graphile
Tady na GitLab Graphile.
Licence MIT, takže jej můžete používat i pro komerční účely.
Budoucnost projektu
Jako PowerShell, a ne nějaká sranda, můžete vytvořit grafické rozhraní v .NET Core.
Jak to udělat:
- Nainstalujte balíček Microsoft.PowerShell.SDK
- Použijte třídu PowerShell a zavolejte Graphile.
Pokud se vám projekt líbí, dělejte commity, merge requesta vytvářejte diskuze.
Děkujeme za přečtení! Použijte a užijte si!
Zdroj: habr.com
