summaryrefslogtreecommitdiffstats
path: root/profile
diff options
context:
space:
mode:
authorOlav Vitters <olav@vitters.nl>2020-07-29 12:44:10 +0200
committerOlav Vitters <olav@vitters.nl>2020-07-29 12:44:10 +0200
commitf96c5cf4994959b669810ab9e3002edea543fdee (patch)
treedad8c585c62d380342ac486c82acf583e5ccd7aa /profile
parent30877266081d3ffb669688861b0aee471ba901c4 (diff)
downloadsetup-f96c5cf4994959b669810ab9e3002edea543fdee.tar
setup-f96c5cf4994959b669810ab9e3002edea543fdee.tar.gz
setup-f96c5cf4994959b669810ab9e3002edea543fdee.tar.bz2
setup-f96c5cf4994959b669810ab9e3002edea543fdee.tar.xz
setup-f96c5cf4994959b669810ab9e3002edea543fdee.zip
Sync with Fedora (not a copy!)
- provide a way how to override set envvars through /etc/profile.d/sh.local file - do show messages from /etc/profile.d/*in interactive shell, login shells - use hostnamectl instead of hostname
Diffstat (limited to 'profile')
-rw-r--r--profile67
1 files changed, 54 insertions, 13 deletions
diff --git a/profile b/profile
index 7a5a6d5..639c91b 100644
--- a/profile
+++ b/profile
@@ -1,15 +1,51 @@
-# /etc/profile -*- Mode: shell-script -*-
-# (c) MandrakeSoft, Chmouel Boudjnah <chmouel@mandrakesoft.com>
+# /etc/profile
+
+# System wide environment and startup programs, for login setup
+# Functions and aliases go in /etc/bashrc
loginsh=1
-if [ "$UID" -ge 1000 ] ; then
- if ! echo ${PATH} |grep -q /usr/local/games ; then
- PATH=$PATH:/usr/local/games
- fi
- if ! echo ${PATH} |grep -q /usr/games ; then
- PATH=$PATH:/usr/games
+# It's NOT a good idea to change this file unless you know what you
+# are doing. It's much better to create a custom.sh shell script in
+# /etc/profile.d/ to make custom changes to your environment, as this
+# will prevent the need for merging in future updates.
+
+pathmunge () {
+ case ":${PATH}:" in
+ *:"$1":*)
+ ;;
+ *)
+ if [ "$2" = "after" ] ; then
+ PATH=$PATH:$1
+ else
+ PATH=$1:$PATH
+ fi
+ esac
+}
+
+
+if [ -x /usr/bin/id ]; then
+ if [ -z "$EUID" ]; then
+ # ksh workaround
+ EUID=`/usr/bin/id -u`
+ UID=`/usr/bin/id -ru`
fi
+ USER="`/usr/bin/id -un`"
+ LOGNAME=$USER
+ MAIL="/var/spool/mail/$USER"
+fi
+
+# Path manipulation
+if [ "$UID" -ge 1000 ] ; then
+ pathmunge /usr/local/games after
+ pathmunge /usr/games after
+fi
+if [ "$EUID" = "0" ]; then
+ pathmunge /usr/sbin
+ pathmunge /usr/local/sbin
+else
+ pathmunge /usr/local/sbin after
+ pathmunge /usr/sbin after
fi
umask 022
@@ -18,7 +54,7 @@ USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
HISTCONTROL=ignoredups
-HOSTNAME=`/bin/hostname`
+HOSTNAME=`/usr/bin/hostnamectl --transient 2>/dev/null`
HISTSIZE=1000
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
@@ -32,10 +68,15 @@ NLSPATH=/usr/share/locale/%l/%N
export PATH PS1 USER LOGNAME MAIL HOSTNAME INPUTRC NLSPATH
export HISTCONTROL HISTSIZE
-for i in /etc/profile.d/*.sh ; do
- if [ -r $i ]; then
- . $i
- fi
+for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
+ if [ -r "$i" ]; then
+ if [ "${-#*i}" != "$-" ]; then
+ . "$i"
+ else
+ . "$i" >/dev/null
+ fi
+ fi
done
unset i
+unset -f pathmunge