Mercurial > index.cgi > dotfiles
view .shared/shared_bashrc @ 273:61b830d34016
Get some basic git config stuff shared wider
author | Steve Huston <huston@princeton.edu> |
---|---|
date | Thu, 25 Apr 2024 16:38:37 -0400 |
parents | 48b4f41712dc |
children | 3b9662470765 |
line wrap: on
line source
# These items are used both in my normal shells, and available to be sourced # in other connections via the shared files tunnel. This way I have a single # place to set certain things that I use normally but will want to be able to # use in other places as well. # # Note that if this is a normal shell, $DOTHOME will have been set there and # will point to the normal location, but if this is a shared shell then the # script that calls this needs to set that to wherever the temporary files # have been deposited. # # Environment variables # [[ "$PS1" ]] && . ${DOTHOME}/bash_prompt export PAGER=less export EDITOR=vim export VIMINIT="source ${DOTHOME}/.vim/vimrc" export GVIMINIT="source ${DOTHOME}/.vim/gvimrc" export HOST=`hostname -s` export SCREENRC="${DOTHOME}/screenrc" export GIT_CONFIG_GLOBAL="${DOTHOME}/gitconfig" # Specifically, to hell with this terminal type [[ $TERM =~ screen.xterm-256color ]] && export TERM=screen-256color # Rather than have another separate file for aliases, just list them in here # (while local aliases have some complicated and large functions, shared ones # are pretty small anyway) # Safe to set this here; if I'm running on a Mac it's my own machine and will # have the local override for the correct arguments to 'ls' alias ls='/bin/ls --color=auto -F' # # Shared SSH aliases # alias bh='ssh csesbh2.princeton.edu' alias dh='ssh srhuston.net' alias j='ssh joshua.srhuston.net' alias x='ssh xanadu.astro.princeton.edu' # For these, we check for a running share server, and if it exists then we # pass the port through to the other side. The biggest problem with this # whole thing is that I don't see a programmatic way to grab the port, so it's # going to have to be a pretty simple command to pull things through, or a # very ugly hack to set an environment variable with everything the script # needs but the port which will have to be manual.. just no good way around it # I can see. # This variable just makes the later lines easier to read. Sets options to # ignore the host keys, for times when I know that they might be different but # I want to login anyway and maybe don't want to adjust the known_hosts file. S_FORCE="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o GlobalKnownHostsFile=/dev/null" # The tests ahead of each function are because I have 's' and 'r' aliases from # before which might interfere. While I could prepend the definition with # 'function' to override the error, you'd still get the wrong one when calling # it because the alias would take priority. So if they exist, remove them - # no harm done. # # I would love for this section to work; if we could get the port that gets # used by the -R option before we hand off to the other side, then I could # pass it somehow through and know where to connect in that shell. But even # though the man page says the port is "reported to the client at run time" # that appears to only be in an echo statement. So there will be an extra # copy and paste step. Meanwhile, I'm keeping this here in case I find a # better way in the future. This would immediately follow the function # definition and the part that is left in that function would be in the else # clause. # #if [ $# -eq 1 ]; then # [[ -n $DOTSHARE_PORT ]] && echo 'ds setup: eval "$(curl http://localhost:${DOTSHARE_PORT}/b)"' # ssh ${DOTSHARE_PORT:+-R 0:localhost:$DOTSHARE_PORT} "$1" -t "DOTSHARE_PORT=${DOTSHARE_PORT} exec bash -l" #else # [do as done below] #fi # I could probably clean up the echoes in each one too, maybe a function? # Nesting it in a variable would be messy because of the quoting needed to get # the right output... [[ "$(type -t s)" == 'alias' ]] && unalias s s() { [[ -n $DOTSHARE_PORT ]] && echo 'ds setup: export DOTSHARE_PORT= ; eval "$(curl http://localhost:${DOTSHARE_PORT}/b)"' ssh ${DOTSHARE_PORT:+-R 0:localhost:$DOTSHARE_PORT} "$@" } [[ "$(type -t r)" == 'alias' ]] && unalias r r() { [[ -n $DOTSHARE_PORT ]] && echo 'ds setup: export DOTSHARE_PORT= ; eval "$(curl http://localhost:${DOTSHARE_PORT}/b)"' ssh ${DOTSHARE_PORT:+-R 0:localhost:$DOTSHARE_PORT} -l root "$@" } [[ "$(type -t sf)" == 'alias' ]] && unalias sf sf() { [[ -n $DOTSHARE_PORT ]] && echo 'ds setup: export DOTSHARE_PORT= ; eval "$(curl http://localhost:${DOTSHARE_PORT}/b)"' ssh ${S_FORCE} ${DOTSHARE_PORT:+-R 0:localhost:$DOTSHARE_PORT} "$@" } [[ "$(type -t rf)" == 'alias' ]] && unalias rf rf() { [[ -n $DOTSHARE_PORT ]] && echo 'ds setup: export DOTSHARE_PORT= ; eval "$(curl http://localhost:${DOTSHARE_PORT}/b)"' ssh ${S_FORCE} ${DOTSHARE_PORT:+-R 0:localhost:$DOTSHARE_PORT} -l root "$@" } # # Programs/utilities # certcheck() { if [ -z "$1" ] ; then echo "Usage: certcheck <hostname>[:port]" echo " Defaults to port 443 if not specified." return fi H=$1 [[ $1 =~ :[0-9]+$ ]] || \ H=$1":443" echo -n Q | openssl s_client -connect $H | openssl x509 -noout -dates } alias rot13="tr 'a-zA-Z' 'n-za-mN-ZA-M'" alias vi='vim' # vim: set filetype=sh :