From 584264538bca6cfed2212892a359f5b4bfe9d2e2 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Wed, 23 Sep 2009 10:36:17 -0400 Subject: [PATCH] Add functions for manipulating PATH, and use them to set the default. --- zprofile | 17 ++--------------- zshenv | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 15 deletions(-) create mode 100644 zshenv diff --git a/zprofile b/zprofile index 2a4978d..dba3a21 100644 --- a/zprofile +++ b/zprofile @@ -15,21 +15,8 @@ export PAGER=${PAGER:-/usr/bin/less} # 077 would be more secure, but 022 is generally quite realistic umask 022 -# Set up PATH depending on whether we're root or a normal user. -# There's no real reason to exclude sbin paths from the normal user, -# but it can make tab-completion easier when they aren't in the -# user's PATH to pollute the executable namespace. -# -# It is intentional in the following line to use || instead of -o. -# This way the evaluation can be short-circuited and calling whoami is -# avoided. -if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then - PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${ROOTPATH}" -else - PATH="/usr/local/bin:/usr/bin:/bin:${PATH}" -fi -export PATH="$HOME/bin:$PATH" -unset ROOTPATH +# Setup the default path. +path_front /{bin,sbin} /usr/{bin,sbin} /usr/local/{bin,sbin} $HOME/bin shopts=$- setopt nullglob diff --git a/zshenv b/zshenv new file mode 100644 index 0000000..09b4a03 --- /dev/null +++ b/zshenv @@ -0,0 +1,22 @@ +# Common functions used by all startup scripts. +# +# Copyright (C) 2009 Nick Bowler +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This file is offered as-is, +# without any warranty. + +path_front() { + local i + for i in $@; do + path=($i ${path:#$i}) + done +} + +path_back() { + local i + for i in $@; do + path=(${path:#$i} $i) + done +} -- 2.43.0