Inspirado no artigo
"Categorias em vez de diretórios ou o sistema de arquivos semântico para Linux Vitis",
Decidi fazer meu próprio análogo do utilitário vitis
para o PowerShell Core.
Por que eu comecei a fazer isso?
Primeiro, o vitis
apenas para Linux.
Em segundo lugar, quero usar os "pipes" no PowerShell.
Como eu queria criar um utilitário de plataforma cruzada, escolhi o .Net Core.
Antecedentes
A princípio, houve um caos. Em seguida, as pastas apareceram no disco.
Mas o caos ainda reinou. E apareceram tags, além de subtags e sinônimos para tags. Mas o caos também os capturou. E categorias foram inventadas.
Conceito
Os arquivos não são armazenados em uma hierarquia de pastas, mas em um heap, com determinadas categorias. Um único arquivo pode pertencer a várias categorias.
Se você precisar encontrar um arquivo, é mais conveniente inserir as categorias às quais ele pertence. É muito mais fácil lembrar do que em quais pastas ele está armazenado.
Mas esse sistema de arquivos não é de forma alguma adequado para armazenar código, códigos-fonte etc.
Ele foi projetado para armazenar, por exemplo, fotos de família, músicas e documentos.
Use
Bem, vamos começar a demonstração.
Instale o Graphile:
# install.ps1 PS D:\Source\repos\Graphile> .\install.ps1
Primeiro, inicialize o Graphile na pasta:
# PS C:\Users\Dell\GraphileTest> Import-Module GraphilePowerShell # Graphile PS C:\Users\Dell\GraphileTest> Init-Graphile C:\Users\Dell\GraphileTest\graphile.db
Então, estamos todos prontos. Agora você pode criar uma nova categoria:
PS C:\Users\Dell\GraphileTest> New-Category -Name "music" music
Adicione os arquivos:
PS C:\Users\Dell\GraphileTest> Get-ChildItem "D:\Music\Pink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach { >> Add-FileToCategory -File $_ -Categories "music" >> }
Para quem não entendeu o que eu fiz:
- Tem uma lista de arquivos na pasta
Pink Floyd - The Wall
- Cada arquivo convertido em um caminho completo para eles
- Adicionado cada arquivo à categoria de
music
Agora verifique se realmente adicionamos os arquivos à categoria:
PS C:\Users\Dell\GraphileTest> List-Graphiles | Format-Table
Uma lista será exibida no formato:
CategoriesNames Id Categories Name Extension
Adicione mais categorias e arquivos:
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:\Music\The Alan Parsons Project - Turn of a Friendly Card" -File -Recurse | foreach { $_.FullName } | foreach { Add-FileToCategory -File $_ -Categories "music", "alan-parsons" }
Verifique os arquivos:
List-Graphiles -Categories "alan-parsons" | Format-Table
O comando listará todos os arquivos que pertencem à categoria alan-parsons
.
Mais arquivos para os sistemas de arquivos god!
New-Category -Name "images" Get-ChildItem "D:\" -File -Recurse | foreach { $.FullName } | foreach { Add-FileToCategory -File $_ -Categories "images" }
Verificamos:
List-Graphiles -Categories "images" | Format-Table
Tudo funciona!
Mas isso é apenas o começo. Exporte seu sistema de arquivos regular para o Graphile e obtenha uma ótima organização de arquivos.
Onde baixar o Graphile
Aqui está um link para o GitLab Graphile.
MIT
, para que você possa usá-la mesmo para fins comerciais.
Projeto futuro
Como esse é o PowerShell, não o khukh-mukhra, você pode criar um shell gráfico no .NET Core.
Como fazer:
- Instale Microsoft.PowerShell.SDK
- Use a classe PowerShell e chame Graphile.
Se você gostou do projeto, faça confirmações, merge request
e crie discussões.
Obrigado pela leitura! Use e divirta-se!