2 votos

Cambiar el perfil de iTerm2 en función del directorio actual

Usando mi .bash_profile, solía cambiar mi perfil iTerm2 por máquina con el siguiente comando:

echo -e "\033]50;SetProfile=ssh\a"

Ahora, quiero cambiarlo dependiendo de mi directorio de trabajo actual.

Idealmente debe funcionar algo así:

  • Una vez que entre en /mnt/producción o cualquier subcarpeta dentro, iTerm debería cambiar al perfil de producción.
  • Una vez que salga de ese directorio, debería cambiar al perfil bash.

¿Hay alguna forma de hacerlo?

0voto

jherran Puntos 6511

Finalmente encontré una solución utilizando bash-preexec .

Esa utilidad tiene la siguiente función:

precmd Se ejecuta justo antes de cada pregunta. Equivale a PROMPT_COMMAND, pero es más flexible y resistente.

Para instalar bash-preexec:

brew install bash-preexec

Entonces tengo que añadir lo siguiente a mi .bash_profile:

if [ -f $(brew --prefix)/etc/profile.d/bash-preexec.sh ]; then
    . $(brew --prefix)/etc/profile.d/bash-preexec.sh
    precmd() {
        if [[ $PWD == /mi/prod/path/produccion* ]]; then
            if [ -z $shouldChangeProfile ]; then
                echo -e "\033]50;SetProfile=production\a"
            fi
            shouldChangeProfile=1
        elif [ "$shouldChangeProfile" == "1" ]; then
            echo -e "\033]50;SetProfile=bash\a"
            unset shouldChangeProfile
        fi
    }
fi

Dentro de la precmd función es donde cambio el perfil según mis necesidades.

shouldChangeProfile evita los cambios de perfil innecesarios.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X