From 76b2f1a3214c1b56b07f92c38095226312925466 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Tue, 1 Jan 2002 21:48:26 +0000 Subject: [PATCH] Add -M option (like -m but only for root) If we can't find "whoami", use "id" w/ some sed. --- install-sh | 70 ++++++++++++++++-------------------------------------- 1 file changed, 21 insertions(+), 49 deletions(-) diff --git a/install-sh b/install-sh index f424971b5..c5eafa8fa 100755 --- a/install-sh +++ b/install-sh @@ -32,6 +32,9 @@ for d in /usr/bin /usr/ucb /usr/bsd; do break fi done +if [ X"$WHOAMI" = X"" ]; then + WHOAMI=id | sed -n 's/^[^(]*(\([^)]*\)).*/\1/p' +fi for d in /usr/ccs/bin /usr/bin; do if [ -f $d/strip ]; then @@ -48,7 +51,15 @@ STRIPIT=false BACKIT=false TOUCHIT=true SAVESRC=false -ROOT=unknown + +case `${WHOAMI}` in +root) + ROOT=true + ;; +*) + ROOT=false + ;; +esac ## Process JCL. MORETODO=true @@ -76,35 +87,11 @@ while ${MORETODO} ; do CHGROUPIT=true ;; X-G) - case ${ROOT} in - unknown) - case `${WHOAMI}` in - root) - ROOT=true - ;; - *) - ROOT=false - ;; - esac - ;; - esac GROUP="$2" shift ${ROOT} && CHGROUPIT=true ;; X-G*) - case ${ROOT} in - unknown) - case `${WHOAMI}` in - root) - ROOT=true - ;; - *) - ROOT=false - ;; - esac - ;; - esac if ${ROOT} ; then GROUP=`expr "$1" : '-g\(.*\)'` CHGROUPIT=true @@ -119,6 +106,15 @@ while ${MORETODO} ; do MODE=`expr "$1" : '-m\(.*\)'` CHMODIT=true ;; + X-M) + MODE="$2" + ${ROOT} && CHMODIT=true + shift + ;; + X-M*) + MODE=`expr "$1" : '-m\(.*\)'` + ${ROOT} && CHMODIT=true + ;; X-n) TOUCHIT=false ;; @@ -132,35 +128,11 @@ while ${MORETODO} ; do CHOWNIT=true ;; X-O) - case ${ROOT} in - unknown) - case `${WHOAMI}` in - root) - ROOT=true - ;; - *) - ROOT=false - ;; - esac - ;; - esac OWNER="$2" shift ${ROOT} && CHOWNIT=true ;; X-O*) - case ${ROOT} in - unknown) - case `${WHOAMI}` in - root) - ROOT=true - ;; - *) - ROOT=false - ;; - esac - ;; - esac if ${ROOT} ; then OWNER=`expr "$1" : '-o\(.*\)'` CHOWNIT=true -- 2.40.0