case `uname` in
Darwin)
DARWIN="yes"
DFSTAT="/usr/bin/stat -f %m -t %s $HOME/.dotfilets"
MDATE="/bin/date -v -1m +%s"
alias ls='/bin/ls -FG'
VNCVIEWER="open vnc://"
;;
Linux)
DFSTAT="/usr/bin/stat -c %Y $HOME/.dotfilets"
MDATE="/bin/date -d \"1 month ago\" +%s"
alias ls='/bin/ls --color=auto -F'
VNCVIEWER="vncviewer Shared=1 Fullcolor=1 "
;;
esac
export DFSTAT MDATE
alias bh='ssh csesbh2.princeton.edu'
cert() {
export VAULT_ADDR='https://ajax.rc.princeton.edu:8200'
ssh-add -d $HOME/.ssh/rc_vault_key-cert.pub > /dev/null 2>&1
if vault login -method=radius username=vi-srh; then
vault write -field=signed_key ssh-client-signer/sign/root public_key=@$HOME/.ssh/rc_vault_key.pub > $HOME/.ssh/rc_vault_key-cert.pub
ssh-add -t 36000 $HOME/.ssh/rc_vault_key
else
echo Failed to login to vault, aborting
fi
}
alias dh='ssh srhuston.net'
alias j='ssh joshua.srhuston.net'
alias keys='ssh-add $HOME/.ssh/*.pvt'
alias r='ssh -l root'
alias rf='ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o GlobalKnownHostsFile=/dev/null -l root'
alias rbh='ssh -t csesbh2.princeton.edu screen -raAx csesbh2'
alias rj='ssh -t joshua.srhuston.net screen -raAx'
alias rx='ssh -t xanadu.astro.princeton.edu screen -raAx'
alias s=ssh
alias sf='ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o GlobalKnownHostsFile=/dev/null'
t() {
T_HOST=xanadu.astro.princeton.edu
if [ -n "$2" ] ; then
T_HOST=$2
fi
ssh -t $T_HOST "ssh $1"
}
alias x='ssh xanadu.astro.princeton.edu'
proxy() {
case $1 in
home)
if [ "$HOST" != "gallifrey" ] ; then
echo "Not on gallifrey, no need for this"
return
fi
PROXY_HOST=${PROXY_HOST:-joshua.srhuston.net}
PROXY_PORT=${PROXY_PORT:-8889}
PROXY_PATH="/Volumes/Chrome-Personal"
PROXY_UMOUNT="hdiutil detach -quiet ${PROXY_PATH}"
if [ ! -e ${PROXY_PATH}/.profile-exists ] ; then
hdiutil attach -stdinpass -nobrowse -quiet ~/Documents/Chrome-Personal.dmg
if [ ! $? ] ; then
echo Disk image failed to mount, aborting
return
fi
fi
;;
work)
PROXY_HOST=${PROXY_HOST:-xanadu.astro.princeton.edu}
PROXY_PORT=${PROXY_PORT:-8888}
if [ "$HOST" == "gallifrey" ] ; then
PROXY_PATH="/Users/huston/Library/Application Support/Google/Chrome"
else
PROXY_PATH="/Users/huston/Library/Application Support/Google/Chrome_Work"
fi
;;
rc)
PROXY_HOST=${PROXY_HOST:-csesbh2.princeton.edu}
PROXY_PORT=${PROXY_PORT:-8887}
PROXY_PATH="/Users/huston/Library/Application Support/Google/Chrome_RC"
;;
*)
echo "Proxy needs one argument: home, work, or rc"
return
;;
esac
ssh -D $PROXY_PORT -f -C -q $PROXY_HOST 'hostname'
(
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--proxy-server="socks5://127.0.0.1:$PROXY_PORT" \
--host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" \
--user-data-dir="${PROXY_PATH}" > /dev/null 2>&1
$PROXY_UMOUNT
# Maybe leave this off, so what if the port is left open if there's no
# conflicts...
# ssh -O cancel -D $PROXY_PORT $PROXY_HOST
) &
disown %+
}
# Remote desktop/VNC
eval "alias milton='ssh -L9930:milton:5900 -f joshua.srhuston.net \"sleep 5\"; ${VNCVIEWER}localhost:9930 &'"
# Programs
alias atari='atari800 -height 800 -width 600'
alias base64='openssl enc -a'
alias irssi-test='irssi --home=$HOME/irssi-test/'
alias pine='alpine'
alias ret='screen -raAx'
alias rot13="tr 'a-zA-Z' 'n-za-mN-ZA-M'"
tt () {
OPTS="-G"
if [ -e ${HOME}/.tt/${1}.tin ] ; then
OPTS="${OPTS} ${HOME}/.tt/${1}.tin"
shift
fi
tt++ ${OPTS} $@
}
alias vi='vim'
# SSHFS mounts
# The $DARWIN check fills in a nice volname if this is a Mac
alias junkpile="sshfs -oreconnect${DARWIN:+,volname=Junkpile} srhuston.net:junkpile $HOME/junkpile"
alias sdh="sshfs -oreconnect${DARWIN:+,volname=srhuston.net} srhuston.net: $HOME/srhuston.net"
alias sj="sshfs -oreconnect${DARWIN:+,volname=Joshua} joshua.srhuston.net: $HOME/joshua"
alias sx="sshfs -oreconnect${DARWIN:+,volname=Xanadu} xanadu.astro.princeton.edu: $HOME/xanadu"
alias vw="sshfs -oreconnect${DARWIN:+,volname=VW} vw.math.princeton.edu: $HOME/vw"
alias tmu="sshfs -oreconnect${DARWIN:+,volname=tomenet-user} joshua.srhuston.net:Installs/tomenet/lib/user $HOME/Installs/tomenet/lib/user"
# LDAP/host tools
alias ldm="ldapmodify -Q -Y GSSAPI -c"
alias ldsloop='while true; do read; clear; lds "$REPLY"; done'
lds () {
QUERY="$1"
shift
OPTS=""
[[ "$1" =~ ^- ]] && {
OPTS="$1"
shift
}
ldapsearch -Q -Y GSSAPI -LLL $OPTS "($QUERY)" $@
}
# Other
alias condor_check="ls -lat /u/condor/hosts/*/log/MasterLog"
alias slurp="wget -r -l1 -np -nd -A.mp3"
alias zulu="date -u +%Y%m%d%H%M%SZ"
# Other Functions
mc-backup() {
pushd ~/Dropbox/Saves/minecraft/saves;
if [ -d $1 ]; then
tar cvf - $1 | bzip2 > ../$1_`date +%Y%m%d%H%M%S`.tar.bz2;
fi;
popd
}
TOhtml() {
OUTDIR=${1:-`mktemp -d TOHTML.XXXXXX`}
ROOT=`hg root`
echo "<HTML><HEAD><TITLE>My dotfiles</TITLE></HEAD><BODY><UL>" > $OUTDIR/index.html
for F in `hg locate` ; do
# Files to ignore from the list
case $F in
.vim/*)
continue
;;
*)
;;
esac
D=`echo $F | grep "/" | sed 's/\/[^\/]*$//'`
if [ $D ] ; then
mkdir -p $OUTDIR/$D
fi
vim -n -e +TOhtml "+w ${OUTDIR}/${F}.html" +qa\! $ROOT/$F
echo "<LI><A href=${F}.html>$F</LI>" >> $OUTDIR/index.html
done
echo "</UL></BODY></HTML>" >> $OUTDIR/index.html
echo Files stored in $OUTDIR
}
hgs() {
# We assume here that if the host is a Mac, we're going to open the
# connection automatically, otherwise we echo the URL to the terminal to be
# opened
ROOT=`hg root`
if [ "$1" == "end" -a -e $ROOT/.hg/hgserve-PID ] ; then
kill `cat $ROOT/.hg/hgserve-PID`
rm $ROOT/.hg/hgserve-PID
else
if [ -e $ROOT/.hg/hgserve-PID ] ; then
P=`cat $ROOT/.hg/hgserve-PID`
URL=`lsof -n -p $P | grep LISTEN | awk '{print $9}'`
else
URL=`hg serve -a localhost -d -p 0 --pid-file $ROOT/.hg/hgserve-PID | sed 's#.*bound to \(.*\))#\1#'`
fi
if [ -z "$DARWIN" ] ; then
echo hg serve on http://$URL/
else
open http://$URL/
fi
fi
}
# vim: set filetype=sh :