¿Dónde debería colocar las configuraciones dependientes del entorno para zsh?

¿Dónde debería colocar las configuraciones dependientes del entorno para zsh?

Tengo un repositorio en github que consta de la mayoría de mis archivos dot, incluidos archivos como .zshrc.

Cuando necesito pasar a un nuevo entorno de desarrollo, solo necesito extraer mis archivos dot de github y asegurarme de que estén en los lugares correctos.

Pero a veces el nuevo entorno es bastante diferente al anterior; por ejemplo, es posible que necesite pasar de MacOS a alguna distribución de Linux.

Estas diferencias pueden hacer que mis configuraciones sean incorrectas, por lo que me pregunto si puedo sacar todas esas configuraciones dependientes del entorno .zshrcy guardarlas en algunos archivos externos.

Respuesta1

Puede cargar archivos adicionales en su ~/.zshrcformato source FILENAME.

Tengo lo siguiente en mi ~/.zshrcpara hacerlo para todos los archivos con extensión .zshen~/.zshrc.d

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

Luego puede colocar allí solo los archivos que necesita para un entorno específico.

Incluso podrías ir un paso más allá y crear un subdirectorio para cada entorno y cargar sólo el necesario. Por ejemplo, según el contenido de $OSTYPE:

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

información relacionada