1 ################################################################################
3 # File: $RCSfile: bash_login,v $
4 # Revision: $Revision: 1.29 $
5 # Description: bash startup file
6 # Author: Andrew@DeFaria.com
7 # Created: Mon Aug 20 17:35:01 2001
8 # Modified: $Date: 2013/06/13 14:04:55 $
11 # (c) Copyright 2000-2005, Andrew@DeFaria.com, all rights reserved.
13 ################################################################################
14 # The following will set HOME, temporarily, to the directory of my $HOME so that
15 # somebody other than me can envoke my startup scripts. I use this mainly for
16 # when I become root with sudo -s and what a better environment that the bare
17 # bones root environment gives you. Note that for us to be effective one must
18 # source (or .) this file and if so the ${BASH_ARGV[0]} is the normal $0
19 if [ -n "${BASH_ARGV[0]}" ]; then
20 home=$(dirname ${BASH_ARGV[0]})
28 # Now set $HOME if $home is different.
30 if [ "$HOME" != "$home" ]; then
34 # Set ARCHITECTURE of the machine
36 if [[ $KERNEL = CYGWIN* ]]; then
37 export ARCHITECTURE=cygwin
38 elif [ $KERNEL = "Linux" ]; then
39 export ARCHITECTURE=linux
40 elif [ $KERNEL = "SunOS" ]; then
41 export ARCHITECTURE=sun
42 elif [ $KERNEL = "FreeBSD" ]; then
43 export ARCHITECTURE=$KERNEL
44 elif [ $KERNEL = "Darwin" ]; then
45 export ARCHITECTURE=$KERNEL
47 export ARCHITECTURE=''
48 echo "Warning: Unknown architecture ($KERNEL)"
51 # Hack: Just set TERM to xterm
52 if [ $ARCHITECTURE = 'sun' ]; then
59 if [ $ARCHITECTURE = 'cygwin' ]; then
67 if [ -f "$HOME/.rc/set_colors" ]; then
68 source "$HOME/.rc/set_colors"
70 echo "Warning: ~/.rc/set_colors does not exist!"
73 # Check to see if we're interactive
74 if [[ $- = *i* ]]; then
75 export interactive=true
77 export interactive=false
84 if [ "$TERM" = "" -o \
85 "$TERM" = "unknown" -o \
86 "$TERM" = "dialup" -o \
87 "$TERM" = "network" ]; then
88 if [ "$interactive" = "true" ]; then
89 eval $(ttytype -s -a -t ansi -t hp)
93 # System dependent variables.
94 if [ -f "$HOME/.rc/system" ]; then
95 source "$HOME/.rc/system"
97 echo "Warning ~/.rc/system does not exist!"
98 export SYSNAME="*Unknown Systemname*:"
103 if [ "$interactive" = "true" ]; then
104 stty tostop intr ^C kill ^X susp ^Z erase ^? -inpck -istrip -ixany -echok -echonl
108 adm_base=${adm_base:-/opt/clearscm}
111 adm_fpath=${adm_fpath:-$adm_base/functions}
114 if [ -f "$adm_fpath/common" ]; then
115 source "$adm_fpath/common"
117 : echo "Warning: Cannot find $adm_fpath/common!"
120 # Source bash_completion (if present) (too slow for Windows)
121 if [ -r /etc/bash_completion -a $ARCHITECTURE != "cygwin" ]; then
122 source /etc/bash_completion
123 elif [ -r /usr/local/etc/bash_completion ]; then
124 source /usr/local/etc/bash_completion
128 if [ $ARCHITECTURE = "cygwin" ]; then
129 alias ping=$(echo $SYSTEMROOT | tr '\\' '\/')/system32/ping
135 # We specify /home/$USER here so that when we sudo to another user
136 # we will only trap logout if that user also has a ~/.rc/logout
138 if [ -x /home/$USER/.rc/logout ]; then
139 trap "/home/$USER/.rc/logout" 0
143 if [ -f ~/.rc/clearcase ]; then
144 source ~/.rc/clearcase
148 if [ -f ~/.rc/multisite ]; then
149 source ~/.rc/multisite
153 if [ -f ~/.rc/git ]; then
157 # Import shell functions:
158 if [ -f ~/.rc/functions ]; then
159 source ~/.rc/functions
168 if [ $ARCHITECTURE != 'Darwin' -a $ARCHITECTURE != 'sun' ]; then
169 ls /etc/*release > /dev/null 2>&1
172 if ! grep -qP '5\.(6|7|8|9|10)' /etc/*release; then
173 shopt -s autocd > /dev/null 2>&1
174 shopt -s dirspell > /dev/null 2>&1
184 if [ $ARCHITECTURE = "FreeBSD" -o $ARCHITECTURE = "Darwin" ]; then
187 if [ -f ~/.rc/dircolors ]; then
188 if type -p dircolors > /dev/null; then
189 eval $(dircolors -b ~/.rc/dircolors)
193 if [ $ARCHITECTURE = "sun" ]; then
194 # Ugh! --color doesn't work on braindead SUN
197 alias ls="ls -F --color=auto"
202 alias whence="type -p"
205 if [ $ARCHITECTURE = "cygwin" ]; then
209 if [ -f "$SYSTEMDRIVE/Perl64/bin/perl" ]; then
210 alias asperl="$SYSTEMDRIVE/Perl64/bin/perl"
213 if [ -f "$SYSTEMDRIVE/Perl/bin/perl" ]; then
214 alias asperl="$SYSTEMDRIVE/Perl64/bin/perl"
217 if [ $(locale -a | grep -c en_US.utf8) != 0 ]; then
218 export LANG=en_US.utf8
223 if [ "$(type -p vim)" ]; then
227 if [ "$(type -p ncftp)" ]; then
229 alias ftpput=ncftpput
230 alias ftpget=ncftpget
233 #alias grep="grep -d skip"
235 if [ "$TERM" = "hpterm" -o \
237 "$TERM" = "dtterm" -o \
238 "$TERM" = "sun-color" -o \
239 "$TERM" = "vt100" -o \
240 "$TERM" = "vt220" -o \
241 "$TERM" = "xtermc" -o \
242 "$TERM" = "xterm" -o \
243 "$TERM" = "xterm-256color" -o \
244 "$TERM" = "cygwin" ]; then
251 if type -p less > /dev/null; then
252 export LESS=eiXP"?f%f :[stdin] .?pt(%pt\%):?bt(%bt bytes):-.."
253 alias more="less -sr"
254 export PAGER="less -sr"
260 export PS4='${0##*/} line $LINENO:'
265 if [ "$TERM" = "dtterm" ]; then
271 export MAIL=/var/mail/$USER
274 export PERLCRITIC=~/.rc/perlcriticrc
275 export PERLTIDY=~/.rc/perltidyrc
280 alias vbs="cscript //nologo"
283 if [ -f ~/.rc/set_path ]; then
284 source ~/.rc/set_path
286 echo "Warning: ~/.rc/set_path does not exist!"
289 # Color man pages with yellow keywords
290 export LESS_TERMCAP_md=$'\e[1;33m'
292 # If /opt/clearscm/lib is around then set PERL5LIB
293 if [ -d /opt/clearscm/lib ]; then
294 export PERL5LIB="$PERL5LIB:/opt/clearscm/lib"
298 if type lessfile > /dev/null 2>&1; then
302 # Client specific customizations
303 for script in $(\ls ~/.rc/client_scripts); do
304 # This is not working as long as ACLs are not supported from the remote
305 # NetApp. This happens at some clients where the home directory is on a
306 # Netapp and they do not support NTFS ACLs properly. We cannot determine
307 # if the script is executable.
308 #if [ ! -d ~/.rc/client_scripts/$script ]; then
309 if [ -x ~/.rc/client_scripts/$script -a \
310 ! -d ~/.rc/client_scripts/$script ]; then
311 source ~/.rc/client_scripts/$script
315 # Set prompt as client customization may have changed things
318 # Set display to local
320 export DISPLAY=${DISPLAY:-:0}
321 # Reset home in case it changed
324 # Odd but Eclipse's Egit can't seem to work with defaria.com unless this is set.
325 export GIT_SSH=/usr/bin/ssh
327 # Now go home (in case we were not autmatically cd'ed there)
328 if [ $($id -u) -ne 0 ]; then