e() { echo "$@"; }
+# echo var. print var including escapes, etc
+ev() {
+ printf "%qEOL\n" "${!1}"
+ printf "%s" "${!1}" |& hexdump -C
+}
+
ediff() {
[[ ${#@} == 2 ]] || { echo "error: ediff requires 2 arguments"; return 1; }
}
r() {
- exit "$@" 2>/dev/null
+ histappend -a
+ exit "$@"
+ # i had this redir, not sure why
+# exit "$@" 2>/dev/null
}
rbpipe() { rbt post -o --diff-filename=- "$@"; }
m() { printf "%s\n" "$*"; "$@"; }
-
vpncmd() {
#m s nsenter -t $(pgrep -f "/usr/sbin/openvpn .* --config /etc/openvpn/.*pia.conf") -n -m "$@"
m s nsenter -t $(pgrep -f "/usr/sbin/openvpn .* --config /etc/openvpn/.*client.conf") -n -m "$@"
if ${use_color} && [[ $- == *i* ]]; then
- if [[ $XTERM_VERSION == Cygwin* ]]; then
- get_term_color() {
- for x in "$@"; do
- case $x in
- underl) echo -n $'\E[4m' ;;
- bold) echo -n $'\E[1m' ;;
- red) echo -n $'\E[31m' ;;
- green) echo -n $'\E[32m' ;;
- blue) echo -n $'\E[34m' ;;
- cyan) echo -n $'\E[36m' ;;
- yellow) echo -n $'\E[33m' ;;
- purple) echo -n $'\E[35m' ;;
- nocolor) echo -n $'\E(B\E[m' ;;
- esac
- done
- }
+ term_underl="$(tput smul)"
+ term_bold="$(tput bold)"
+ term_red="$(tput setaf 1)"
+ term_green="$(tput setaf 2)"
+ term_blue="$(tput setaf 4)"
+ term_cyan="$(tput setaf 6)"
+ term_yellow="$(tput setaf 3)"
+ term_purple="$(tput setaf 5)"
+ term_nocolor="$(tput sgr0)" # no font attributes
- else
- get_term_color() {
- for x in "$@"; do
- case $x in
- underl) echo -n $(tput smul) ;;
- bold) echo -n $(tput bold) ;;
- red) echo -n $(tput setaf 1) ;;
- green) echo -n $(tput setaf 2) ;;
- blue) echo -n $(tput setaf 4) ;;
- cyan) echo -n $(tput setaf 6) ;;
- yellow) echo -n $(tput setaf 3) ;;
- purple) echo -n $(tput setaf 5) ;;
- nocolor) echo -n $(tput sgr0) ;; # no font attributes
- esac
- done
- }
- fi
-else
- get_term_color() {
- :
- }
fi
# Try to keep environment pollution down, EPA loves us.
unset safe_term match_lhs use_color
PS1="\h $PS1"
fi
+ # emacs terminal has problems if this runs slowly,
+ # so I've thrown a bunch of things at the wall to speed it up.
prompt-command() {
local return=$? # this MUST COME FIRST
local psc pst ps_char ps_color stale_subvol
unset IFS
history -a # save history
-
-
case $return in
- 0) ps_color="$(get_term_color purple)"
+ 0) ps_color="$term_purple"
ps_char='\$'
;;
- 1) ps_color="$(get_term_color green)"
+ 1) ps_color="$term_green"
ps_char="$return \\$"
;;
- *) ps_color="$(get_term_color yellow)"
+ *) ps_color="$term_yellow"
ps_char="$return \\$"
;;
esac
if [[ ! -O . ]]; then # not owner
if [[ -w . ]]; then # writable
- ps_color="$(get_term_color bold red)"
+ ps_color="$term_bold$term_red"
else
- ps_color="$(get_term_color bold green)"
+ ps_color="$term_bold$term_green"
fi
fi
- # I would set nullglob, but bash has had bugs where that
- # doesnt work if not in top level.
- if [[ -e /nocow/btrfs-stale ]] && ((`command ls -AUq /nocow/btrfs-stale|wc -l`)); then
- ps_char="! $ps_char"
- fi
- if test -e /m/md/bounces/new/*; then
- ps_char='!BOUNCE! '"$ps_char"
- fi
- if [[ -e /nocow/user/mailtest-failure ]]; then
- ps_char='!MAILPING! '"$ps_char"
- fi
- source /a/bin/bash_unpublished/source-state
+
+ # faster than sourceing the file im guessing
+ eval $(< /dev/shm/iank-status)
if [[ ! $SSH_CLIENT && $MAIL_HOST != $HOSTNAME ]]; then
ps_char="@ $ps_char"
fi
- PS1="${PS1%"${PS1#*[wW]}"} \[$ps_color\]$ps_char\[$(get_term_color nocolor)\] "
- # emacs completion doesnt like the git prompt atm, so disabling it.
- #PS1="${PS1%"${PS1#*[wW]}"}$(__git_ps1 ' (%s)') \[$ps_color\]$ps_char\[$(get_term_color nocolor)\] "
+ PS1="${PS1%"${PS1#*[wW]}"} \[$ps_color\]$ps_char\[$term_nocolor\] "
}
PROMPT_COMMAND=prompt-command