Estou escrevendo um módulo personalizado para estender o framework zprezto para mim. O objetivo é ser capaz de iniciar um tmux com configuração apropriada pelo nome. Aqui está o código do init.zsh
do meu módulo personalizado:
SCRIPT=${0:A}
export _MYTMUX_SDIR='dirname $SCRIPT'
function start_tmux {
PROJECT_NAME=$1
tmux has-session -t $PROJECT_NAME 2>/dev/null
if [ "$?" -eq 1 ] ; then
echo "No Session found. Creating and configuring..."
tmux new-session -d -s $PROJECT_NAME
tmux source-file ${_MYTMUX_SDIR}/tmux-${PROJECT_NAME}.conf
else
echo "Session found. Connecting."
fi
tmux attach-session -t $PROJECT_NAME
}
function start_aws {
start_tmux aws
}
function start_digitalocean {
start_tmux digitalocean
}
Eu sou forçado a exportar uma variável _MYTMUX_SDIR
para acompanhar a localização do script. Isso é necessário porque os arquivos de configuração do tmux estão colocados com o script init.zsh do módulo.
Se eu colocar este código dentro do corpo da função, ele me dará o local do diretório onde a função é chamada.
Minha pergunta:
Existe uma maneira melhor de descobrir o local do script? Eu quero evitar colocar variáveis no ambiente desnecessariamente.