| @@ -1,242 +0,0 @@ | |||
| # common/.profile.d/20-functions-ps1.sh | |||
| # Get user name of current user even if | |||
| # $USER isn't set | |||
| # Use id if we don't have $USER | |||
| user_name() | |||
| { | |||
| if [ -z $USER ]; then | |||
| echo $(id | awk -F\( '{print $2}' | sed -e 's/[)].*//g') | |||
| else | |||
| echo $USER | |||
| fi | |||
| } | |||
| # duh | |||
| am_i_root() | |||
| { | |||
| [ "$(user_name)" = 'root' ] | |||
| } | |||
| userps1name= | |||
| hostps1name= | |||
| host_name() | |||
| { | |||
| name='' | |||
| case $(os_type) in | |||
| osx) name=$(hostname -s) ;; | |||
| *) name=$(uname -n) ;; | |||
| esac | |||
| echo $name | |||
| } | |||
| host_ps1name() | |||
| { | |||
| if [[ ${hostps1name:+1} != 1 ]]; then | |||
| hostps1name=$(host_name) | |||
| if [[ ${pscolors:+1} == 1 ]]; then | |||
| hostps1name="%{$fg[blue]%}$hostps1name%{$reset_color%}" | |||
| fi | |||
| fi | |||
| echo $hostps1name | |||
| } | |||
| user_ps1name() | |||
| { | |||
| if [[ ${userps1name:+1} != 1 ]]; then | |||
| case $(user_name) in | |||
| mitch) | |||
| userps1name='me' | |||
| if [[ ${pscolors:+1} == 1 ]]; then | |||
| userps1name="%{$fg[blue]%}$userps1name%{$reset_color%}" | |||
| fi | |||
| ;; | |||
| root) | |||
| userps1name='root' | |||
| if [[ ${pscolors:+1} == 1 ]]; then | |||
| userps1name="%{$fg[red]%}$userps1name%{$reset_color%}" | |||
| fi | |||
| ;; | |||
| *) | |||
| userps1name=$(user_name) | |||
| if [[ ${pscolors:+1} == 1 ]]; then | |||
| userps1name="%{$fg[cyan]%}$userps1name%{$reset_color%}" | |||
| fi | |||
| ;; | |||
| esac | |||
| fi | |||
| echo $userps1name | |||
| } | |||
| # using who am i, see if our pty is owned by someone else. | |||
| user_ptyname() | |||
| { | |||
| name=$(who am i | sed -e "s/[ ].*//1") | |||
| [ ${name} == '' ] && name=$LOGNAME | |||
| echo $name | |||
| } | |||
| ps1_user_host() | |||
| { | |||
| echo "$(user_ps1name)@$(host_ps1name)" | |||
| } | |||
| ps1_special() | |||
| { | |||
| am_i_root | |||
| [ $? -eq 0 ] && echo '# ' || echo '$ ' | |||
| } | |||
| ps1() | |||
| { | |||
| echo "$(ps1_user_host) $(ps1_special)" | |||
| } | |||
| ostype='' | |||
| oskernel='' | |||
| osarch='' | |||
| osmajor='' | |||
| osminor='' | |||
| osversion='' | |||
| osuname_s='' | |||
| osrelease='' | |||
| osprefix='' | |||
| osreleasefile='' | |||
| # where /etc/*release files exist | |||
| archreleasefile='/etc/arch-release' | |||
| debianreleasefile='/etc/debian_version' | |||
| susereleasefile='/etc/SuSE-release' | |||
| redhatreleasefile='/etc/Redhat-release' | |||
| solarisreleasefile='/etc/release' | |||
| freebsdreleasefile='/etc/freebsd-update.conf' | |||
| os_release() | |||
| { | |||
| case $(os_uname_s) in | |||
| Linux) osrelease=$(cat $osreleasefile) ;; | |||
| Darwin) osrelease=$(sw_vers -productVersion) ;; | |||
| bsd) osrelease=$(uname -r) ;; | |||
| *) osrelease='' ;; | |||
| esac | |||
| echo $osrelease | |||
| } | |||
| os_kernel() | |||
| { | |||
| if [[ ${oskernel:+1} != 1 ]]; then | |||
| oskernel=$(uname -r) | |||
| fi | |||
| echo $oskernel | |||
| } | |||
| os_arch() | |||
| { | |||
| if [[ ${osarch:+1} != 1 ]]; then | |||
| osarch=$(uname -m) | |||
| fi | |||
| echo $osarch | |||
| } | |||
| os_uname_s() | |||
| { | |||
| if [[ ${os_uname_s:+1} != 1 ]]; then | |||
| osuname_s=$(uname -s) | |||
| fi | |||
| echo $osuname_s | |||
| } | |||
| function os_type { | |||
| if [[ ${ostype:+1} != 1 ]]; then | |||
| if [[ -f $archreleasefile ]]; then | |||
| ostype='arch' | |||
| osreleasefile=$archreleasefile | |||
| elif [[ -f $debianreleasefile ]]; then | |||
| ostype='debian' | |||
| osreleasefile=$debianreleasefile | |||
| elif [[ -f $susereleasefile ]]; then | |||
| ostype='suse' | |||
| osreleasefile=$susereleasefile | |||
| elif [[ -f $redhatreleasefile ]]; then | |||
| ostype='redhat' | |||
| osreleasefile=$redhatreleasefile | |||
| elif [[ $(os_uname_s) == 'SunOS' ]]; then | |||
| ostype='sun' | |||
| elif [[ $(os_uname_s) == 'Darwin' ]]; then | |||
| ostype='osx' | |||
| elif [[ -f $freebsdreleasefile ]]; then | |||
| ostype='bsd' | |||
| else | |||
| echo "No idea what os type this is." | |||
| fi | |||
| fi | |||
| echo $ostype | |||
| } | |||
| os_major() | |||
| { | |||
| if [[ ${osmajor:+1} != 1 ]]; then | |||
| case $(os_type) in | |||
| arch) osmajor='arch' ;; | |||
| debian) osmajor=$(os_release | sed -e 's/\.[0-9]\{1\}//2') ;; | |||
| suse) | |||
| osmajor=$(os_release | grep 'VER' | sed -e 's/.*\=\ //g') ;; | |||
| redhat) osmajor='zomg' ;; | |||
| sun) osmajor=$(uname -r) ;; | |||
| osx) osmajor=$(os_release | sed -e 's/\.[0-9]\{1\}//2') ;; | |||
| bsd) osmajor=$(os_release | sed -e 's/\.*//') ;; | |||
| *) osmajor='?' | |||
| esac | |||
| fi | |||
| echo $osmajor | |||
| } | |||
| os_minor() | |||
| { | |||
| if [[ ${osminor:+1} != 1 ]]; then | |||
| case $(os_type) in | |||
| arch) osminor='zomg' ;; | |||
| debian) osminor=$(os_release | sed -e 's/[0-9]\.[0-9]\{1\}\.//1') ;; | |||
| suse) | |||
| osminor=$(os_release | grep 'PATCH' | sed -e 's/.*\=\ //g') ;; | |||
| redhat) osminor='zomg' ;; | |||
| sun) osminor=$(uname -r) ;; | |||
| osx) osminor=$(os_release | sed -e 's/10\.[0-9]\{1\}\.//1') ;; | |||
| bsd) osminor=$(os_release | sed -e 's/\d+\.[0-9]\{1\}\-//1') ;; | |||
| *) osminor='?' | |||
| esac | |||
| fi | |||
| echo $osminor | |||
| } | |||
| os_version() | |||
| { | |||
| if [[ ${osversion:+1} != 1 ]]; then | |||
| case $(os_type) in | |||
| arch) osversion='zomg' ;; | |||
| debian) osversion=$(os_release) ;; | |||
| suse) osversion="${osmajor}u${osminor}" ;; | |||
| redhat) osversion='zomg' ;; | |||
| sun) osversion=$osmajor ;; | |||
| osx) osversion=$(os_release) ;; | |||
| bsd) osversion="${osmajor}.${osminor}" ;; | |||
| *) osversion='wtf?' ;; | |||
| esac | |||
| fi | |||
| echo $osversion | |||
| } | |||
| os_prefix() | |||
| { | |||
| if [[ ${osprefix:+1} != 1 ]]; then | |||
| case $(os_type) in | |||
| osx) osprefix="$(os_major)-$(os_uname_s)-$(os_arch)" ;; | |||
| *) osprefix="$(os_type)-$(os_uname_s)-$(os_arch)" ;; | |||
| esac | |||
| fi | |||
| echo $osprefix | |||
| } | |||
| # setup the one thing we need for all of the functions. | |||
| os_type > /dev/null 2>&1 | |||