-alias knh='kill_known_host'
-if which vim 2>/dev/null | grep ^/ >/dev/null; then
- alias vim='vim +syn\ on'
- alias vi='vim'
-fi
+unalias rm 2>/dev/null
+unalias mv 2>/dev/null
+unalias cp 2>/dev/null
+
alias debug='valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=5 --verbose --time-stamp=yes --track-fds=yes'
+alias knh='kill_known_host'
alias svnfind='find . -type f ! -path "*/.svn/*"'
# Fixup screen and define ``session'' if available.
-screen=$(which screen 2>/dev/null)
-if [ ! -z "$screen" ]; then
+screen=$(find_working screen 2>/dev/null)
+if [ $? = 0 ]; then
# Override SCREENDIR iff screen is not setuid.
if ! ls -l "$screen" | cut -d ' ' -f 1 | grep s >/dev/null; then
export SCREENDIR="$HOME/.screen/$HOSTNAME"
fi
- if which krenew 2>/dev/null | grep ^/ >/dev/null; then
- alias kscreen='krenew --'
+ krenew=$(find_working krenew 2/dev/null)
+ if [ $? = 0 ]; then
+ alias kscreen="$krenew --"
else
alias kscreen=''
fi
+ unset krenew
alias session='bigscreen -rx -S session || kscreen bigscreen -S session'
fi
--- /dev/null
+#!/bin/bash
+#
+# find_working: Find a version of some tool in the PATH which actually runs.
+# Usage: find_working [options] <prog>
+# Options: -a <args> Use arguments to test executable files. Default --help.
+# -q Don't print path to prog. Just exit 0 if found.
+# -x Don't try to execute unreadable files. Assume success.
+# -X Don't try to execute unreadable files. Assume failure.
+#
+
+args="-h -? --help"
+quiet=0
+unreadable=
+while getopts ":a:qxX" opt; do
+ case $opt in
+ a) args="$OPTARG";;
+ q) quiet=1;;
+ x) unreadable=0;;
+ X) unreadable=1;;
+ esac
+done
+shift $((OPTIND-1))
+
+prog="$1"; shift
+if [ -z "$prog" ]; then
+ echo >&2 "Usage: find_working [options] <prog>"
+ echo >&2 "Options: -a <args> Use arguments to test executable files. Default --help."
+ echo >&2 " -q Don't print path to prog. Just exit 0 if found."
+ echo >&2 " -x Don't try to execute unreadable files. Assume success."
+ echo >&2 " -X Don't try to execute unreadable files. Assume failure."
+ exit 1
+fi
+
+ret=
+for path in ${PATH//:/ }; do
+ [ -x "$path/$prog" ] || continue
+
+ if [ -r "$path/$prog" ]; then
+ ldd "$path/$prog" 2>/dev/null | grep "not found" >/dev/null && continue
+ ret="$path/$prog"
+ break
+ elif [ -z "$unreadable" ]; then
+ "$path/$prog" $args 2>&1 | grep " $prog " >/dev/null || continue
+ ret="$path/$prog"
+ break
+ elif [ $unreadable = 0 ]; then
+ ret="$path/$prog"
+ break
+ elif [ $unreadable = 1 ]; then
+ continue
+ fi
+
+ exit 0
+done
+
+if [ -n "$ret" ]; then
+ [ $quiet = 0 ] && echo "$ret"
+ exit 0
+fi
+
+exit 100