2 votes

Changer le profil de l'iTerm2 en fonction du répertoire courant

En utilisant mon .bash_profile, j'avais l'habitude de changer mon profil iTerm2 par machine avec la commande suivante :

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

Maintenant, je veux le changer en fonction de mon répertoire de travail actuel.

Idéalement, cela doit fonctionner comme ça :

  • Une fois que j'entre dans /mnt/production ou tout autre sous-dossier à l'intérieur, iTerm devrait passer au profil de production.
  • Une fois que j'ai quitté ce répertoire, il faut passer au profil bash.

Y a-t-il un moyen de le faire ?

0voto

jherran Points 12554

J'ai finalement trouvé une solution en utilisant bash-preexec .

Cet utilitaire a la fonction suivante :

precmd Exécuté juste avant chaque invite. Équivalent de PROMPT_COMMAND, mais plus souple et plus résistant.

Pour installer bash-preexec :

brew install bash-preexec

Je dois ensuite ajouter ce qui suit à mon fichier .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

A l'intérieur de la precmd La fonction est celle où je modifie le profil en fonction de mes besoins.

shouldChangeProfile évite les changements de profil inutiles.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X