Normalmente, preciso armazenar diferentes arquivos logicamente relacionados entre si para diferentes projetos ( example pairs: data-metadata, script-configuration, run_input-run_result-run_log
).
Na maioria desses casos, eu uso um arquivo 90% do tempo e raramente preciso alterar uma configuração, ver os logs para depuração etc. organização é um pouco confusa).
Não tenho certeza se existe uma convenção para isso, mas gostaria de criar minhas próprias unidades lógicas que são representadas por um único arquivo da maneira mais simples possível (por exemplo, algo semelhante a pacotes de aplicativos, mas sem gerar arquivos extras ou precisar de xcode ou construir para ele).
Digamos, em um exemplo, que eu tenha execuções de três arquivos que gostaria de agrupar: run1_input.json - run1_result.json - run1_log.txt
. Para cada "execução", crio uma pasta semelhante a um arquivo, digamos run1.json
. Eu gostaria de poder fazer cd run1.json
, open run1.json
, ls run1.json
, open run1.json/run1_input.json
, como faria se run1.json
fosse apenas um diretório normal. Mas, especificamente, quando clico duas vezes em run1.json
, gostaria run1_result.json
de ser aberto como se tivesse clicado run1.json/run1_result.json
.
Então, basicamente, estou procurando uma maneira de fazer com que um arquivo em um diretório "represente" seu diretório pai. Isso é possível?
Bônus: também estaria interessado no Linux, embora esteja planejando usá-lo imediatamente no MacOS no momento
Se você deseja que o Finder se comporte dessa maneira, acho que você precisa usar Bundles (ou escrever sua própria extensão do Finder). Os pacotes não devem ser tão difíceis de usar. Não acho que você precise do XCode para criá-los.
Parece que você é um programador, então crie um "aplicativo" por meio da ferramenta Platypus, basta executar qualquer script de shell simples. Você pode então usar o aplicativo que o Platypus cria como modelo para suas pastas/aplicativos. Vá para a pasta/app/bundle e apenas edite o script que o aplicativo executa para que ele execute um tipo de comando "textedit run1_result.json". Clicar duas vezes no aplicativo/pacote abrirá seu arquivo de saída. Você pode fazer todas as coisas complexas com links simbólicos (e talvez editar qual arquivo o script abre) no script ou fazer com que ele se comporte com o nome da pasta/aplicativo para saber qual arquivo de saída abrir.
Você pode querer escrever outro script que pegue seu aplicativo/pacote/script de modelo e o estruture para cada uma dessas coisas que deseja agrupar. Depois disso, seu código é executado normalmente no Terminal, mas você pode interagir com a saída clicando duas vezes no aplicativo/pacote Finder.
Como parece que você também tem entrada que pode querer editar (através do Finder também), talvez você queira definir e usar uma variável de ambiente (que você pode definir manualmente, através do Automator, etc.) quando quiser alternar entre modos de entrada e saída. Alterne o modo, clique duas vezes no aplicativo/pacote e o script de shell abrirá o arquivo de entrada ou saída, com base na variável de ambiente.