-
Notifications
You must be signed in to change notification settings - Fork 0
/
puppet.sh
66 lines (57 loc) · 1.93 KB
/
puppet.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# NOTE: This file is managed by Puppet; any changes you make will be erased.
parse_git_branch ()
{
local GITDIR=`git rev-parse --show-toplevel 2>&1` # Get root directory of git repo
if [[ "$GITDIR" != '/root' ]] # Don't show status of home directory repo
then
# Figure out the current branch, wrap in brackets and return it
local BRANCH=`git branch --no-color 2>/dev/null | sed -n '/^\*/s/^\* //p'`
if [ -n "$BRANCH" ]; then
echo -e "[$BRANCH]"
fi
else
echo ""
fi
}
function git_color ()
{
# Get the status of the repo and chose a color accordingly
local STATUS=`git status 2>&1`
if [[ "$STATUS" == *'Not a git repository'* ]]
then
echo ""
else
if [[ "$STATUS" != *'working directory clean'* ]]
then
# red if need to commit
echo -e '\033[0;31m'
else
if [[ "$STATUS" == *'Your branch is ahead'* ]]
then
# yellow if need to push
echo -e '\033[0;33m'
else
# else cyan
echo -e '\033[0;36m'
fi
fi
fi
}
if [ $UID -ne 0 ] ; then
export PS1="\[\033[0;36mHint: Switch to root account to begin your quest.\033[0m\] $PS1"
return
fi
# Call the above functions inside the PS1 declaration
export PS1='\[$(git_color)\]$(parse_git_branch)\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$ '
#- to be used with new 'quest' command and .tmux.conf
function check_quest() {
(quest updatecache --list brief >/dev/null && \
quest updatecache --progress brief >/dev/null &)
}
export PROMPT_COMMAND='history -a; history -r; check_quest'
export PATH=/usr/src/courseware-lvm/quest_tool/bin:$PATH
export GEM_HOME=/opt/quest/gems/
# If not running interactively, do not do anything
#[[ $- != *i* ]] && exec tmux && return
[[ $- != *i* ]] && return
[[ -z "$TMUX" ]] && exec tmux && exec tmux attach