diff options
author | Olav Vitters <olav@vitters.nl> | 2020-07-29 12:44:10 +0200 |
---|---|---|
committer | Olav Vitters <olav@vitters.nl> | 2020-07-29 12:44:10 +0200 |
commit | f96c5cf4994959b669810ab9e3002edea543fdee (patch) | |
tree | dad8c585c62d380342ac486c82acf583e5ccd7aa | |
parent | 30877266081d3ffb669688861b0aee471ba901c4 (diff) | |
download | setup-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
-rw-r--r-- | profile | 67 |
1 files changed, 54 insertions, 13 deletions
@@ -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 |