#
# /etc/profile: system-wide profile for the Bourne shell (sh(1)) and
# Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
-#
-# 2008-08-07, alex@barton.de
-# - Added support for /etc/profile.d
-# - Added support for /etc/chroot_name
-# - Restructure PATH and MANPATH detecttion.
-# - Add ~/Applications to PATH.
-# - Add generic chroot name check.
-# - Check if debian_chroot is readable (insted of if it exists).
-# - Fix quota check, don't use full path name
-# 2007-10-28, alex@barton.de
-# - Look for /usr/libexec/path_helper, used by Mac OS X 10.5
-# 2007-04-05, alex@barton.de
-# - Check for and read /etc/bashrc as well, if /etc/bash.bashrc doesn't exist
-# 2006-01-04, alex@barton.de
-# - Use "hostname -s" (not "--short") for compatibility to [Net]BSD.
-# - Added /usr/pkg/bin to optional PATH components.
-# 2005-04-23, alex@Arthur.Ath.CX
-# - Removed umask, we do use the system default now.
-# 2005-02-19, alex@Arthur.Ath.CX
-# - Removed export of CVS_RSH and MANWIDTH: use /etc/environment!
-# 2005-02-04, alex@Arthur.Ath.CX
-# - Added export of CVS_RSH.
-# - Added export of MANWIDTH=80.
-# 2005-01-23, alex@Arthur.Ath.CX
-# - Added check for quotas
-# 2004-09-13, alex@Arthur.Ath.CX
-# - I made this script more generic, so that it is usabe for other systems
-# than Arthur as well: read in local profile from /var/lib/$ME/profile
-# after the initialization done in here.
-# - Changed shell prompt to generic version using "<" and ">".
-# - Make sure that $ME is set, even when not running interactive.
-# 2004-08-11, alex@Arthur.Ath.CX
-# - Make sure that $USER is set.
-# - Always export $UID and $USER variables.
-# 2004-07-30, alex@Arthur.Ath.CX
-# - Make sure $UID is set.
-# - Let ksh read in "/etc/ksh.kshrc".
-# 2004-05-20, alex@Arthur.Ath.CX
-# - Added support for "$debian_chroot"
-# 2004-02-16, alex@Arthur.Ath.CX
-# - Removed test for old home directory.
-# 2004-02-02, alex@Arthur.Ath.CX
-# - Added scan for optional PATH elements.
-# 2003-12-18, alex@Arthur.Ath.CX
-# - Initial version.
+# Written 2003-2009 by Alexander Barton (alex@barton.de)
#
-[ -e /tmp/ConfigDebug.$USER ] && echo " >> /etc/profile ..."
+[ -e ~/.ConfigScripts.debug ] && echo " >> /etc/profile ..."
PROFILEREAD="true"
export PROFILEREAD
+# Make sure UID is set
+[ -n "$UID" ] || UID=`id -u`
+export UID
+
+# Set locale if it is not set or doesn't contain a dot;
+# but all system messages should still be in "native" ("C") language.
+[ "$LANG" = "${LANG#*.}" -a "$LANG" != "C" ] \
+ && export LANG="${LANG:-de_DE}.ISO8859-1"
+export LC_MESSAGES="C"
+
# Initialize PATH variable
export PATH MANPATH
if [ -x /usr/libexec/path_helper ]; then
fi
# prepend optional directories to PATH ...
path=""
-for d in /usr/pkg/bin /opt/*/bin; do
+for d in /Developer/usr/bin /usr/pkg/bin /opt/*/bin; do
[ -d "$d" -o -h "$d" ] && path="$path$d:"
done
[ -n "$path" ] && PATH="$path$PATH"
[ -d ~/bin ] && PATH=~/bin:"${PATH}"
[ -d ~/sbin ] && PATH=~/sbin:"${PATH}"
-# set MANPATH so it includes user's private man files
-if [ -n "$MANPATH" ]; then
+# Setup MANPATH, if manpath(1) isn't available
+if [ ! "$(type manpath)" ]; then
+ [ -z "$MANPATH" ] \
+ && MANPATH="/usr/local/share/man:/usr/share/man:/usr/man"
path=""
for d in /usr/pkg/share/man /usr/pkg/man /opt/*/share/man /opt/*/man; do
[ -d "$d" -o -h "$d" ] && path="$path$d:"
done
[ -n "$path" ] && MANPATH="$path$MANPATH"
+ [ -d ~/share/man ] && MANPATH=~/share/man:"${MANPATH}"
+ [ -d ~/man ] && MANPATH=~/man:"${MANPATH}"
fi
-[ -d ~/man ] && MANPATH=~/man:"${MANPATH}"
-[ -d ~/share/man ] && MANPATH=~/share/man:"${MANPATH}"
# set variable identifying the chroot you work in
[ -r /etc/debian_chroot ] && chroot_name=$(cat /etc/debian_chroot)
ME=`hostname -s`
export ME
+# Move Xauthority file to local storage, so that sudo et all work
+if [ -z "$XAUTHORITY" -a -r ~/.Xauthority ]; then
+ cp ~/.Xauthority /tmp/Xauthority-$USER
+ chmod 600 /tmp/Xauthority-$USER
+ export XAUTHORITY="/tmp/Xauthority-$USER"
+fi
+
# read profile additions
if [ -d /etc/profile.d ]; then
for f in /etc/profile.d/*; do
- [ -r "$f" ] && . "$f"
+ [ -r "$f" ] || continue
+ case "$f" in
+ *.csh)
+ ;;
+ *)
+ [ -e ~/.ConfigScripts.debug ] \
+ && echo " >> $f ..."
+ . "$f"
+ esac
done
fi
[ "$KSH_VERSION" -a -z "$KSHRCREAD" -a -r /etc/ksh.kshrc ] \
&& . /etc/ksh.kshrc
-# Check quotas
+# Check filesystem quotas
which quota >/dev/null 2>&1
[ $? -eq 0 ] && quota -q