Eu me deparei com um problema interessante que ainda não consegui resolver satisfatoriamente.
Considere um comando de anotações que aceita dois argumentos:
note $project $note
Isso simplesmente arquiva o conteúdo de $ note em um projeto de acordo com o primeiro parâmetro.
Agora tenho dois projetos em que insiro alguns dados:
note "projectA" "asdfasdf"
note "projectB" "weradfvsaf"
Isso funcionou bem quando eu tinha poucos projetos. Então eu tenho mais projetos e tive uma idéia: Use o caminho atual para determinar o nome do projeto:
+~
+~/projects/projectA
+~/projects/projectB/subdir
+~/projects/...
Então eu escrevi um wrapper para a função acima que analisa o nome do projeto fora do caminho do diretório.
Isso funcionou muito bem, até que comecei a ter vários projetos abrangendo vários caminhos:
+~
+~/projects/projectA
+~/projects/projectB/subdir
+~/projects/temp/projectA
+~/test/projectA
Agora meu problema é: Como posso continuar sendo preguiçoso? Eu pensei que a maneira mais fácil seria criar um arquivo, por exemplo project.rc, que contém apenas o nome do projeto que está contido na pasta e todas as subpastas de onde ele está localizado. O wrapper simplesmente procura no diretório atual por esse arquivo e continua a percorrer para cima na árvore de diretórios até que o arquivo seja encontrado. Em seguida, o arquivo é lido e o parâmetro $ project é definido de acordo.
Eu não estou realmente familiarizado com o shell script; Alguém poderia encontrar uma solução para esse problema?