Onde devo colocar configurações dependentes do ambiente para zsh?

Onde devo colocar configurações dependentes do ambiente para zsh?

Eu tenho um repositório no github que consiste na maioria dos meus arquivos de ponto, incluindo arquivos como .zshrc.

Quando preciso migrar para um novo ambiente de desenvolvimento, só preciso extrair meus arquivos de ponto do github e ter certeza de que estão nos lugares corretos.

Mas às vezes o novo ambiente é bem diferente do antigo, por exemplo, posso precisar migrar do MacOS para alguma distribuição de Linux.

Essas diferenças podem tornar minhas configurações incorretas, por isso estou pensando se posso mover todas essas configurações dependentes do ambiente .zshrce salvá-las em alguns arquivos externos.

Responder1

Você pode carregar arquivos adicionais em seu ~/.zshrcarquivo source FILENAME.

Eu tenho o seguinte para ~/.zshrcfazer isso para todos os arquivos com extensão .zshem~/.zshrc.d

# load additional configuration
if [[ -d ~/.zshrc.d ]]; then
    for file in ~/.zshrc.d/*.zsh; do
        source "$file"
    done
    unset file
fi

Você pode então colocar apenas os arquivos necessários para um ambiente específico.

Você pode até dar um passo além e criar um subdiretório para cada ambiente e carregar apenas o necessário. Por exemplo, com base no conteúdo de $OSTYPE:

if [[ -d ~/.zshrc.d/${OSTYPE} ]]; then
    for file in ~/.zshrc.d/${OSTYPE}/*.zsh; do
        source "$file"
    done
    unset file
fi

informação relacionada