Cambiar el perfil de iTerm2 dependiendo del directorio actual

1

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

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

Ahora, quiero cambiarlo según mi directorio de trabajo actual.

Lo ideal es que funcione algo como esto:

  • Una vez que ingrese / mnt / production 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?

    
pregunta jherran 12.05.2016 - 11:07

1 respuesta

0

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

Esa utilidad tiene la siguiente función:

precmd Ejecutado justo antes de cada solicitud. Equivalente a PROMPT_COMMAND, pero más flexible y resistente.

Para instalar bash-preexec:

brew install bash-preexec

Luego tengo que agregar 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 "3]50;SetProfile=production\a"
            fi
            shouldChangeProfile=1
        elif [ "$shouldChangeProfile" == "1" ]; then
            echo -e "3]50;SetProfile=bash\a"
            unset shouldChangeProfile
        fi
    }
fi

Dentro de la función precmd es donde cambio el perfil de acuerdo con mis necesidades.

shouldChangeProfile evita cambios de perfil innecesarios.

    
respondido por el jherran 17.05.2016 - 14:08

Lea otras preguntas en las etiquetas