X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;f=rc%2Fbash_login;h=2d31fb8c127cb0630a35888c18df02cd0e8ef1b9;hb=bdb1e0c845a6921e22d52fbff3404d5c1dfae520;hp=1a904f9ad2f048e04786f04c080353e6ab223471;hpb=020a4a5ea2be725b155cae3a2cadc9aba3911b9b;p=clearscm.git diff --git a/rc/bash_login b/rc/bash_login old mode 100755 new mode 100644 index 1a904f9..2d31fb8 --- a/rc/bash_login +++ b/rc/bash_login @@ -11,27 +11,56 @@ # (c) Copyright 2000-2005, Andrew@DeFaria.com, all rights reserved. # ################################################################################ -# Set ARCH, architecture of the machine +# The following will set HOME, temporarily, to the directory of my $HOME so that +# somebody other than me can envoke my startup scripts. I use this mainly for +# when I become root with sudo -s and what a better environment that the bare +# bones root environment gives you. Note that for us to be effective one must +# source (or .) this file and if so the ${BASH_ARGV[0]} is the normal $0 +if [ -n "${BASH_ARGV[0]}" ]; then + home=$(dirname ${BASH_ARGV[0]}) +else + home=$HOME +fi + +# Strip off .rc +home=${home/%\/\.rc/} + +# Now set $HOME if $home is different. +saved_home=$HOME +if [ "$HOME" != "$home" ]; then + HOME=$home +fi + +# Set ARCHITECTURE of the machine KERNEL=$(uname -s) if [[ $KERNEL = CYGWIN* ]]; then - export ARCH=cygwin + export ARCHITECTURE=cygwin elif [ $KERNEL = "Linux" ]; then - export ARCH=linux + export ARCHITECTURE=linux elif [ $KERNEL = "SunOS" ]; then - export ARCH=sun + export ARCHITECTURE=sun elif [ $KERNEL = "FreeBSD" ]; then - export ARCH=$KERNEL + export ARCHITECTURE=$KERNEL +elif [ $KERNEL = "Darwin" ]; then + export ARCHITECTURE=$KERNEL else - export ARCH='' + export ARCHITECTURE='' echo "Warning: Unknown architecture ($KERNEL)" fi -# Architectual differences (AKA Silly Sun) -if [ $ARCH = "sun" ]; then - alias id=/usr/xpg4/bin/id - alias tr=/usr/xpg4/bin/tr - - export id=/usr/xpg4/bin/id +# Hack: Just set TERM to xterm +if [ $ARCHITECTURE = 'sun' ]; then + id=/usr/xpg4/bin/id + tr=/usr/xpg4/bin/tr + TERM=xtermc +else + id=id + tr=tr + if [ $ARCHITECTURE = 'cygwin' ]; then + TERM=cygwin + else + TERM=xterm + fi fi # Set colors @@ -68,14 +97,6 @@ else export SYSNAME="*Unknown Systemname*:" fi -# System dependencies -# Note: I don't like doing this but an alias doesn't work... -if [ $ARCH = "sun" ]; then - id=/usr/xpg4/bin/id -else - id=id -fi - umask 002 if [ "$interactive" = "true" ]; then @@ -96,14 +117,20 @@ else fi # Source bash_completion (if present) (too slow for Windows) -if [ -r /etc/bash_completion -a $ARCH != "cygwin" ]; then +if [ -r /etc/bash_completion -a $ARCHITECTURE != "cygwin" ]; then source /etc/bash_completion fi -export CVSROOT=:ext:andrew@clearscm.com:/var/cvs/cvsroot +# Alias ping +if [ $ARCHITECTURE = "cygwin" ]; then + alias ping=$(echo $SYSTEMROOT | tr '\\' '\/')/system32/ping +fi -if [ -x ~/.rc/logout ]; then - trap "~/.rc/logout" 0 +# We specify /home/$USER here so that when we sudo to another user +# we will only trap logout if that user also has a ~/.rc/logout +# (doubtfull). +if [ -x /home/$USER/.rc/logout ]; then + trap "/home/$USER/.rc/logout" 0 fi # ClearCase Stuff @@ -116,6 +143,11 @@ if [ -f ~/.rc/multisite ]; then source ~/.rc/multisite fi +# Git Stuff +if [ -f ~/.rc/git ]; then + source ~/.rc/git +fi + # Import shell functions: if [ -f ~/.rc/functions ]; then source ~/.rc/functions @@ -126,10 +158,24 @@ set -o emacs set -o monitor set +u +# Shell options +if [ $ARCHITECTURE != 'Darwin' -a $ARCHITECTURE != 'sun' ]; then + ls /etc/*release > /dev/null 2>&1 + + if [ $? = 0 ]; then + if ! grep -qP '5\.(6|7|8|9|10)' /etc/*release; then + shopt -s autocd > /dev/null 2>&1 + shopt -s dirspell > /dev/null 2>&1 + fi + fi +fi + +shopt -s cdspell +shopt -s histappend shopt -s lithist # Aliases: -if [ $ARCH = "FreeBSD" ]; then +if [ $ARCHITECTURE = "FreeBSD" -o $ARCHITECTURE = "Darwin" ]; then alias ls="ls -FG" else if [ -f ~/.rc/dircolors ]; then @@ -138,7 +184,7 @@ else fi fi - if [ $ARCH = "sun" ]; then + if [ $ARCHITECTURE = "sun" ]; then # Ugh! --color doesn't work on braindead SUN alias ls="ls -F" else @@ -150,17 +196,29 @@ alias ll="ls -la" alias whence="type -p" alias mroe=more -if [ $ARCH = "cygwin" ]; then +if [ $ARCHITECTURE = "cygwin" ]; then alias host=nslookup fi -export LANG=C +if [ -f "$SYSTEMDRIVE/Perl64/bin/perl" ]; then + alias asperl="$SYSTEMDRIVE/Perl64/bin/perl" +fi + +if [ -f "$SYSTEMDRIVE/Perl/bin/perl" ]; then + alias asperl="$SYSTEMDRIVE/Perl64/bin/perl" +fi + +if [ $(locale -a | grep -c en_US.utf8) != 0 ]; then + export LANG=en_US.utf8 +else + export LANG=C +fi -if [ $(type -p vim) ]; then +if [ "$(type -p vim)" ]; then alias vi=vim fi -if [ $(type -p ncftp) ]; then +if [ "$(type -p ncftp)" ]; then alias ftp=ncftp alias ftpput=ncftpput alias ftpget=ncftpget @@ -168,13 +226,15 @@ fi #alias grep="grep -d skip" -if [ "$TERM" = "hpterm" -o \ - "$TERM" = "hp" -o \ - "$TERM" = "dtterm" -o \ - "$TERM" = "sun-color" -o \ - "$TERM" = "vt100" -o \ - "$TERM" = "vt220" -o \ - "$TERM" = "xterm" -o \ +if [ "$TERM" = "hpterm" -o \ + "$TERM" = "hp" -o \ + "$TERM" = "dtterm" -o \ + "$TERM" = "sun-color" -o \ + "$TERM" = "vt100" -o \ + "$TERM" = "vt220" -o \ + "$TERM" = "xtermc" -o \ + "$TERM" = "xterm" -o \ + "$TERM" = "xterm-256color" -o \ "$TERM" = "cygwin" ]; then alias cd=mycd alias pushd=mypushd @@ -223,6 +283,16 @@ fi # Color man pages with yellow keywords export LESS_TERMCAP_md=$'\e[1;33m' +# If /opt/clearscm/lib is around then set PERL5LIB +if [ -d /opt/clearscm/lib ]; then + export PERL5LIB="$PERL5LIB:/opt/clearscm/lib" +fi + +# Lessfile +if type lessfile > /dev/null 2>&1; then + eval $(lessfile) +fi + # Client specific customizations for script in $(\ls ~/.rc/client_scripts); do # This is not working as long as ACLs are not supported from the remote @@ -237,9 +307,15 @@ for script in $(\ls ~/.rc/client_scripts); do done # Set display to local + export DISPLAY=${DISPLAY:-:0} +# Reset home in case it changed +HOME=$saved_home + +# Odd but Eclipse's Egit can't seem to work with defaria.com unless this is set. +export GIT_SSH=/usr/bin/ssh # Now go home (in case we were not autmatically cd'ed there) -if [ $(id -u) -ne 0 ]; then +if [ $($id -u) -ne 0 ]; then cd fi