haiku/data/etc/profile
Adrien Destugues 5f4f984a94 etc/profile: Fix setting of LC_* variables
Since hrev51075, locale -m changed meaning to the one expected by POSIX
(it now lists character maps, instead of giving the current language).

Since the short options may change again (locale -c is still not doing
what POSIX requires), use long options instead. This is more readable
and POSIX doesn't specify anything there so we can name them however we
want.

Fixes date parsing in Python which relies on these variables to detect
the current locale.
2017-11-23 14:50:11 +01:00

146 lines
2.6 KiB
Bash

#
# Administrative startup for /bin/sh
# Place user customizations in /.profile
#
ps 2>&1 | grep -e $PPID 2>&1 | grep -e $SHELL 2>&1 | grep -q -e $PPID > /dev/null 2>&1
if [ $? -eq 1 ] ; then
echo -e "\nWelcome to the Haiku shell.\n"
export PS1="\w> "
else
echo -e "\nSwitching to architecture `getarch`\n"
export PS1="[`getarch`] \w> "
fi
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
# Locale
export LC_MESSAGES=`locale --message`
export LC_NUMERIC=`locale --format`
export LC_TIME=`locale --time`
export LC_COLLATE=$LC_MESSAGES
export LC_CTYPE=$LC_MESSAGES
export LC_MONETARY=$LC_NUMERIC
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