- if [[ -r /etc/gentoo-release ]] ; then
- [[ -r /etc/profile.env ]] && source /etc/profile.env
- if (( EUID != 0 )); then
- PATH="$HOME/bin:/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/games:/usr/NX/bin:$PATH"
- else
- PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/NX/bin:$PATH"
- fi
- else
- # support extra software in special directory outside of squashfs environment in live-cd mode
- if [[ -f /etc/grml_cd ]] ; then
- [[ -d /cdrom/addons/ ]] && ADDONS=':/cdrom/addons/'
- fi
- if (( EUID != 0 )); then
- PATH="$HOME/bin:/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/games:/usr/NX/bin$ADDONS"
- else
- PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/NX/bin$ADDONS"
- fi
- fi
+if [[ -r /etc/gentoo-release ]] ; then
+ [[ -r /etc/profile.env ]] && source /etc/profile.env
+fi
+
+# support extra scripts/software in special directory outside of squashfs environment in live mode
+if [[ -f /etc/grml_cd ]] ; then
+ [[ -r /run/live/medium/scripts ]] && ADDONS='/run/live/medium/scripts'
+ [[ -r /etc/grml/my_path ]] && ADDONS="$(cat /etc/grml/my_path)"
+fi
+
+# Solaris
+case $(uname 2>/dev/null) in
+ SunOS)
+ path=(
+ /usr/bin
+ /usr/sbin
+ /usr/ccs/bin
+ /opt/SUNWspro/bin
+ /usr/ucb
+ /usr/sfw/bin
+ /usr/gnu/bin
+ /usr/openwin/bin
+ /opt/csw/bin
+ /sbin
+ ~/bin
+ )
+esac
+
+# generic $PATH handling
+if (( EUID != 0 )); then
+ path=(
+ $HOME/bin
+ /usr/local/bin
+ /usr/bin
+ /bin
+ /usr/local/sbin
+ /usr/sbin
+ /sbin
+ /usr/local/games
+ /usr/games
+ "${ADDONS}"
+ "${path[@]}"
+ )
+else
+ path=(
+ $HOME/bin
+ /usr/local/sbin
+ /usr/local/bin
+ /sbin
+ /bin
+ /usr/sbin
+ /usr/bin
+ "${ADDONS}"
+ "${path[@]}"
+ )
+fi
+
+# remove empty components to avoid '::' ending up + resulting in './' being in $PATH
+path=( "${path[@]:#}" )