57ab322d67
Technically the profile is supposed to be sourced, but it seems that some scenarios / applications do not do this and instead run it. Before the recent changes to PS1, it was also exported, and now it is again. Should fix entering HaikuPorter chroots under the new profile. Also renamed "ARCH" to "_ARCH" to better accomodate those who are sourcing this file, in case they want to pass a variable named ARCH through.
142 lines
2.5 KiB
Bash
142 lines
2.5 KiB
Bash
#
|
|
# Administrative startup for /bin/sh
|
|
# Place user customizations in ~/config/settings/profile
|
|
#
|
|
|
|
_ARCH=`getarch 2>/dev/null`
|
|
if [ "$_ARCH" = "`getarch -p 2>/dev/null`" ] ; then
|
|
echo -e "\nWelcome to the Haiku shell.\n"
|
|
PS1="\w"
|
|
else
|
|
echo -e "\nSwitching to architecture `getarch`\n"
|
|
PS1="[$_ARCH] \w"
|
|
fi
|
|
unset _ARCH
|
|
|
|
export PS1="\["'`if [ $? = 0 ]; then echo "\e[32m";
|
|
else echo "\e[31m"; fi`'"\]$PS1\[\e[0m\]> "
|
|
|
|
export USER=`id -un`
|
|
export GROUP=`id -gn`
|
|
|
|
if [ -z $BE_HOST_CPU ]; then
|
|
. /boot/system/boot/SetupEnvironment
|
|
fi
|
|
|
|
export HISTFILESIZE=500
|
|
export HISTCONTROL=ignoredups
|
|
|
|
alias ls="ls --color=auto"
|
|
alias ll="ls -lA"
|
|
alias la="ls -A"
|
|
alias m="more"
|
|
|
|
test -n "$BASH_VERSION" && shopt -s checkwinsize
|
|
|
|
#
|
|
# and now we include a few useful things...
|
|
#
|
|
|
|
#
|
|
# An almost-ksh compatible `whence' command. This is as hairy as it is
|
|
# because of the desire to exactly mimic ksh.
|
|
#
|
|
# This depends somewhat on knowing the format of the output of the bash
|
|
# `builtin type' command.
|
|
#
|
|
# Chet Ramey
|
|
# chet@ins.CWRU.Edu
|
|
#
|
|
test -n "$KSH_VERSION" || whence()
|
|
{
|
|
local vflag= path=
|
|
|
|
if [ "$#" = "0" ] ; then
|
|
echo "whence: argument expected"
|
|
return 1
|
|
fi
|
|
case "$1" in
|
|
-v) vflag=1
|
|
shift 1
|
|
;;
|
|
-*) echo "whence: bad option: $1"
|
|
return 1
|
|
;;
|
|
*) ;;
|
|
esac
|
|
|
|
if [ "$#" = "0" ] ; then
|
|
echo "whence: bad argument count"
|
|
return 1
|
|
fi
|
|
|
|
returnValue=0
|
|
|
|
for cmd
|
|
do
|
|
if [ "$vflag" ] ; then
|
|
echo $(builtin type $cmd | sed 1q)
|
|
else
|
|
path=$(builtin type -path $cmd)
|
|
if [ "$path" ] ; then
|
|
echo $path
|
|
else
|
|
case "$cmd" in
|
|
*/*) if [ -x "$cmd" ]; then
|
|
echo "$cmd"
|
|
else
|
|
returnValue=1
|
|
fi
|
|
;;
|
|
*) case "$(builtin type -type $cmd)" in
|
|
"") returnValue=1
|
|
;;
|
|
*) echo "$cmd"
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
done
|
|
return $returnValue
|
|
}
|
|
|
|
if test -n "$KSH_VERSION"; then
|
|
ps1_pwd() {
|
|
local e=$? d=${PWD:-?}/ p=~
|
|
[[ $p = ?(*/) ]] || d=${d/#$p\//\~/}
|
|
print -nr -- "${d%/}"
|
|
return $e
|
|
}
|
|
PS1=${PS1/'\w'/'$(ps1_pwd)'}
|
|
alias which='whence -p'
|
|
else
|
|
test -n "$BASH_VERSION" || PS1=$(printf '%s' "$PS1" | \
|
|
sed 's/\\w/$PWD/')
|
|
alias which='whence'
|
|
fi
|
|
|
|
function dir {
|
|
ls -lF "$@";
|
|
}
|
|
|
|
for dir in `findpaths -Re B_FIND_PATH_DATA_DIRECTORY profile.d 2> /dev/null`; do
|
|
for i in $dir/*.sh; do
|
|
if [ -r $i ]; then
|
|
. $i
|
|
fi
|
|
done
|
|
unset i
|
|
done
|
|
unset dir
|
|
|
|
if [ -d /etc/profile.d ]; then
|
|
for i in /etc/profile.d/*.sh; do
|
|
if [ -r $i ]; then
|
|
. $i
|
|
fi
|
|
done
|
|
unset i
|
|
fi
|