Current Juju Environment Name in Bash Prompt
Having to test code in multiple Juju providers one can forget which environment you’re currently working on. So yesterday I came up with this little snippet in my $HOME/.bashrc file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# Print the current juju environment name in the prompt function show_juju_env { local jujuHome local currentEnv [[ -n "$JUJU_HOME" ]] && jujuHome="${JUJU_HOME}" || jujuHome="${HOME}/.juju" if [[ -n "$JUJU_ENV" ]]; then currentEnv="${JUJU_ENV}" else local envFile="${jujuHome}/current-environment" if [[ ! -e "$envFile" ]]; then echo `juju switch` > "${envFile}" fi currentEnv=`cat $envFile` fi local currentEnvJenv="${jujuHome}/environments/$currentEnv.jenv" if [[ -e "$currentEnvJenv" ]]; then printf "[\e[38;5;70m%s\e[0m] " "$currentEnv" else printf "[\e[38;5;7m%s\e[0m] " "$currentEnv" fi } export PS1="\$(show_juju_env)${PS1}"; |
This gives you a nice prompt like this: [local] …