Modifica il profilo iTerm2 in base alla directory corrente

1

Usando il mio .bash_profile, ho usato il mio profilo iTerm2 per macchina con il seguente comando:

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

Ora, voglio cambiarlo in base alla mia attuale directory di lavoro.

Idealmente, devi lavorare in questo modo:

  • Una volta inserito / mnt / produzione o qualsiasi sottocartella all'interno, iTerm dovrebbe passare al profilo di produzione.
  • Una volta che ho lasciato quella directory, dovrei passare al profilo di bash.

C'è un modo per farlo?

    
posta jherran 12.05.2016 - 11:07
fonte

1 risposta

0

Finalmente ho trovato una soluzione usando bash-preexec .

Quell'utilità ha la seguente funzione:

precmd Eseguito appena prima di ogni prompt. Equivalente a PROMPT_COMMAND, ma più flessibile e resiliente.

Per installare bash-preexec:

brew install bash-preexec

Quindi devo aggiungere quanto segue al mio .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

All'interno della funzione precmd è dove cambio il profilo in base alle mie esigenze.

shouldChangeProfile impedisce modifiche al profilo non necessarie.

    
risposta data 17.05.2016 - 14:08
fonte

Leggi altre domande sui tag