Mac OSX подсказка о ветке git

Я играл с файлом .profile в своем домашнем каталоге, чтобы показать ветку git в приглашении, а также показать набор rvm gemset и виртуальную среду python, в которой я сейчас... в основном все работает нормально, проблема, с которой я У меня есть то, что для того, чтобы показать ветку другим цветом в зависимости от состояния ветки, я должен каждый раз делать source ~/.profile, также я должен делать то же самое, чтобы показать python virtualenv в CYAN.

Должен быть способ или что-то, что мне не хватает, чтобы мне не приходилось запускать source ~/.profile каждый раз, когда я захожу в другую папку, чтобы цвет ветки основывался на статусе.

Вот мой .профиль

https://gist.github.com/3628788

Спасибо за вашу помощь, чтобы понять это!


person maumercado    schedule 05.09.2012    source источник


Ответы (1)


Используйте переменную PROMPT_COMMAND, чтобы определить функцию, которая устанавливает PS1 после каждой команды. Поместите это внизу вашего файла .profile вместо назначения PS1:

prompt_cmd () {
    PS1="${PYTHON_VIRTUALENV}$PURPLE\$(set_rvm_prompt)$NO_COLOUR\u@\h:[\W]${B_STATE}\$(parse_git_branch)$NO_COLOUR\$ "
}

PROMPT_COMMAND=prompt_cmd

Теперь, непосредственно перед отображением подсказки, bash выполнит функцию prompt_cmd, обновив PS1 для получения самой последней информации в соответствии с PYTHON_VIRTUALENV, set_rvm_prompt() и parse_git_branch().

person chepner    schedule 05.09.2012
comment
Мне пришлось добавить set_rvm_prompt и parse_git_branch в prompt_cmd, и теперь это работает как шарм!... Вот обновленный файл gist. github.com/3354613 - person maumercado; 05.09.2012