Use 256-colour urxvt if available.
[profile.git] / .profile.d / p4.bashrc
1 # profile-required: vim.bashrc
2 if [ ! -z "$SUDO_USER" ]; then
3   export P4USER=$SUDO_USER
4   export P4TICKETS=/tmp/.p4tickets.$SUDO_USER
5 else
6   export P4USER=$USER
7 fi
8 export P4CONFIG=.p4config
9 eval $(alias diff 2>/dev/null | sed 's/^alias diff/P4DIFF/')
10 export P4DIFF="${P4DIFF:-diff} -u"
11 eval $(alias vim 2>/dev/null | sed 's/^alias vim/p4vim/')
12 p4vim=${p4vim:-vim}
13 P4EDITOR="$p4vim"
14 p4script=$(find_target_profile ".vim/script/p4")
15 [ -n "$p4script" ] && P4EDITOR="$p4vim -S '$p4script'"
16 export P4EDITOR
17 if [ -z "$DISPLAY" ]; then
18   p4script=$(find_target_profile ".vim/script/merge")
19   if [ -n "$p4script" ]; then
20     export P4MERGE="$p4vim -S '$p4script'"
21   else
22     export P4MERGE="$p4vim -o -c '3wincmd j' -c 'wincmd L'"
23   fi
24 else
25   export P4MERGE="p4merge"
26 fi
27 unset p4script p4vim
28
29 # p4: Wrapper around p4 to add some other features.
30 function p4() {
31   if [ -z "$P4OPTSTRING" -a ! "${P4OPTSTRING+xxx}" = "xxx" ]; then
32     local p4=$(which p4)
33     P4OPTSTRING="$(strings $p4 | grep H:)"
34   fi
35
36   local opts=
37   OPTIND=1
38   if [ -n "$P4OPTSTRING" ]; then
39     while getopts "$P4OPTSTRING" opt; do
40       [ "$opt" = "?" ] && continue
41       opts="$opts -$opt $OPTARG"
42     done
43     shift $((OPTIND-1))
44   fi
45
46   command="$1"; shift
47   custom=${PROFILE_HOME:-~}/opt/p4/p4-"$command"
48
49   if [ -x "$custom" ]; then
50     "$custom" $opts "$command" ${1+"$@"}
51   else
52     ( exec p4 $opts "$command" ${1+"$@"} )
53   fi
54 }