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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
##
## Part of configuration files for Zsh 4
## by Hugues Hiegel <hugues@hiegel.fr>
##
## NO WARRANTY PROVIDED, USE AT YOUR OWN RISKS
##
## You are encouraged to use, modify, and redistribute
## these files with or without this notice.
##
##
## User-defined functions
##
#
# For preexec, precmd, chpwd and other built-in functions,
# go see the file Prompts.zsh
#
cmd_exists ()
{
which $1 2>/dev/null >&2
}
term_title()
{
[[ -t 1 ]] &&
case $TERM in
sun-cmd)
print -Pn "\e]l%n@%m %~$1\e\\" # Never tested..
;;
*term*|rxvt*)
print -Pn "\e]0;%n@%m (%l) %~$1\a" # Sets term title
;;
screen)
print -Pn "\e]2;[SCREEN] %n@%m (%l) %~$1\a" # Sets term title
print -Pn "\ek%n@%m (%l) %~$1\e\\" # Sets screen title
;;
*)
;;
esac
}
preprint()
{
local my_color
my_color=${2-"$color[black];$color[bold]"}
hbar=
for i in {1..$(($COLUMNS - ${#1} - 5))}
do
hbar=$hbar-
done
print -Pn "${C_}$my_color${_C}${hbar}[ $1 ]-\r${C_}0${_C}"
}
get_git_branch ()
{
local my_git_branch
[ "$( ( git-ls-tree HEAD . 2>&- ; git-ls-files . 2>&- ) | head -n 1)" == "" ] && return
# Get current working GIT branch
my_git_branch="$(git-branch 2>&- | grep -E '^\* ' | cut -c3-)"
if [ "$my_git_branch" != "" ]
then
# If not on a working GIT branch, get the named current commit-ish inside parenthesis
[ "$my_git_branch" == "(no branch)" ] &&\
my_git_branch="($(git-name-rev HEAD 2>&- | awk '{ print $2 }' | sed 's,^tags/,,;s,^remotes/,,'))"
# If neither on a named commit-ish, show abbreviated commit-id
[ "$my_git_branch" == "(undefined)" ] &&\
my_git_branch="($(git-rev-parse HEAD 2>&-))"
fi
echo $my_git_branch
}
# We *must* have previously checked that
# we obtained a correct GIT branch with
# a call to `get_git_branch`
get_git_status ()
{
local my_git_status cached not_up_to_date managment_folder
if [ "$(git-rev-parse --git-dir)" == "." ] ; then
echo "$git_colors[managment_folder]"
return
fi
if [ "$(git-diff --cached 2>&- | grep '^diff ')" != "" ] ; then
cached="yes"
fi
if [ "$(git-ls-files -m 2>&-)" != "" ] ; then
not_up_to_date="yes"
fi
if [ "$cached" != "" -a "$not_up_to_date" != "" ] ; then
my_git_status="$git_colors[cached_and_not_up_to_date]"
elif [ "$cached" != "" ] ; then
my_git_status="$git_colors[cached]"
elif [ "$not_up_to_date" != "" ] ; then
my_git_status="$git_colors[not_up_to_date]"
else
my_git_status="$git_colors[up_to_date]"
fi
echo $my_git_status
}
normal_user ()
{
if [ -e /etc/login.defs ]
then
eval `grep -v '^[$#]' /etc/login.defs | grep "^UID_" | tr -d '[:blank:]' | sed 's/^[A-Z_]\+/&=/'`
[ \( $UID -ge $UID_MIN \) -a \( $UID -le $UID_MAX \) ]
else
[ "`whoami`" != "root" ]
fi
}
privileged_user ()
{
! normal_user
}
|