Skip to content

Commit a0afbd3

Browse files
author
Jani Taskinen
committed
- Update shtool to 2.0.8
1 parent dee7bf7 commit a0afbd3

File tree

1 file changed

+126
-42
lines changed

1 file changed

+126
-42
lines changed

build/shtool

+126-42
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
#!/bin/sh
22
##
33
## GNU shtool -- The GNU Portable Shell Tool
4-
## Copyright (c) 1994-2006 Ralf S. Engelschall <rse@engelschall.com>
4+
## Copyright (c) 1994-2008 Ralf S. Engelschall <rse@engelschall.com>
55
##
66
## See http://www.gnu.org/software/shtool/ for more information.
77
## See ftp://ftp.gnu.org/gnu/shtool/ for latest version.
88
##
9-
## Version: 2.0.6 (19-Apr-2006)
9+
## Version: 2.0.8 (18-Jul-2008)
1010
## Contents: 5/19 available modules
1111
##
1212

@@ -92,8 +92,8 @@ if [ $# -eq 0 ]; then
9292
exit 1
9393
fi
9494
if [ ".$1" = ".-h" ] || [ ".$1" = ".--help" ]; then
95-
echo "This is GNU shtool, version 2.0.6 (19-Apr-2006)"
96-
echo 'Copyright (c) 1994-2006 Ralf S. Engelschall <rse@engelschall.com>'
95+
echo "This is GNU shtool, version 2.0.8 (18-Jul-2008)"
96+
echo 'Copyright (c) 1994-2008 Ralf S. Engelschall <rse@engelschall.com>'
9797
echo 'Report bugs to <bug-shtool@gnu.org>'
9898
echo ''
9999
echo 'Usage: shtool [<options>] [<cmd-name> [<cmd-options>] [<cmd-args>]]'
@@ -161,11 +161,11 @@ if [ ".$1" = ".-h" ] || [ ".$1" = ".--help" ]; then
161161
exit 0
162162
fi
163163
if [ ".$1" = ".-v" ] || [ ".$1" = ".--version" ]; then
164-
echo "GNU shtool 2.0.6 (19-Apr-2006)"
164+
echo "GNU shtool 2.0.8 (18-Jul-2008)"
165165
exit 0
166166
fi
167167
if [ ".$1" = ".-r" ] || [ ".$1" = ".--recreate" ]; then
168-
shtoolize -oshtool echo install mkdir platform path
168+
shtoolize -obuild/shtool echo install mkdir platform path
169169
exit 0
170170
fi
171171
if [ ".$1" = ".-d" ] || [ ".$1" = ".--debug" ]; then
@@ -473,7 +473,7 @@ case $tool in
473473
echo )
474474
##
475475
## echo -- Print string with optional construct expansion
476-
## Copyright (c) 1998-2006 Ralf S. Engelschall <rse@engelschall.com>
476+
## Copyright (c) 1998-2008 Ralf S. Engelschall <rse@engelschall.com>
477477
##
478478

479479
text="$*"
@@ -594,11 +594,14 @@ echo )
594594
userid=`grep "^${username}:" /etc/passwd 2>/dev/null | \
595595
sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'`
596596
if [ ".$userid" = . ]; then
597-
userid=`(ypcat passwd) 2>/dev/null |
598-
grep "^${username}:" | \
599-
sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'`
597+
userid=`(ypmatch "${username}" passwd; nismatch "${username}" passwd) 2>/dev/null | \
598+
sed -e 'q' | sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'`
600599
if [ ".$userid" = . ]; then
601-
userid='?'
600+
userid=`(nidump passwd . | grep "^${username}:") 2>/dev/null | \
601+
sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'`
602+
if [ ".$userid" = . ]; then
603+
userid='?'
604+
fi
602605
fi
603606
fi
604607
fi
@@ -623,10 +626,14 @@ echo )
623626
groupid=`grep "^${username}:" /etc/passwd 2>/dev/null | \
624627
sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'`
625628
if [ ".$groupid" = . ]; then
626-
groupid=`(ypcat passwd) 2>/dev/null | grep "^${username}:" | \
627-
sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'`
629+
groupid=`(ypmatch "${username}" passwd; nismatch "${username}" passwd) 2>/dev/null | \
630+
sed -e 'q' | sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'`
628631
if [ ".$groupid" = . ]; then
629-
groupid='?'
632+
groupid=`(nidump passwd . | grep "^${username}:") 2>/dev/null | \
633+
sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'`
634+
if [ ".$groupid" = . ]; then
635+
groupid='?'
636+
fi
630637
fi
631638
fi
632639
fi
@@ -651,11 +658,16 @@ echo )
651658
groupname=`grep "^[^:]*:[^:]*:${groupid}:" /etc/group 2>/dev/null | \
652659
sed -e 's/:.*$//'`
653660
if [ ".$groupname" = . ]; then
654-
groupname=`(ypcat group) 2>/dev/null | \
655-
grep "^[^:]*:[^:]*:${groupid}:" | \
661+
groupname=`(ypcat group; niscat group) 2>/dev/null | \
662+
sed -e 'q' | grep "^[^:]*:[^:]*:${groupid}:" | \
656663
sed -e 's/:.*$//'`
657664
if [ ".$groupname" = . ]; then
658-
groupname='?'
665+
groupname=`(nidump group .) 2>/dev/null | \
666+
grep "^[^:]*:[^:]*:${groupid}:" | \
667+
sed -e 's/:.*$//'`
668+
if [ ".$groupname" = . ]; then
669+
groupname='?'
670+
fi
659671
fi
660672
fi
661673
fi
@@ -771,7 +783,7 @@ echo )
771783
install )
772784
##
773785
## install -- Install a program, script or datafile
774-
## Copyright (c) 1997-2006 Ralf S. Engelschall <rse@engelschall.com>
786+
## Copyright (c) 1997-2008 Ralf S. Engelschall <rse@engelschall.com>
775787
##
776788

777789
# special case: "shtool install -d <dir> [...]" internally
@@ -857,12 +869,12 @@ install )
857869
if [ ".$opt_t" = .yes ]; then
858870
echo "cp $src $dsttmp" 1>&2
859871
fi
860-
cp $src $dsttmp || shtool_exit $?
872+
cp "$src" "$dsttmp" || shtool_exit $?
861873
else
862874
if [ ".$opt_t" = .yes ]; then
863875
echo "mv $src $dsttmp" 1>&2
864876
fi
865-
mv $src $dsttmp || shtool_exit $?
877+
mv "$src" "$dsttmp" || shtool_exit $?
866878
fi
867879

868880
# adjust the target file
@@ -873,7 +885,7 @@ install )
873885
do
874886
sed="$sed -e '$e'"
875887
done
876-
cp $dsttmp $dsttmp.old
888+
cp "$dsttmp" "$dsttmp.old"
877889
chmod u+w $dsttmp
878890
eval "$sed <$dsttmp.old >$dsttmp" || shtool_exit $?
879891
rm -f $dsttmp.old
@@ -908,7 +920,7 @@ install )
908920
quick=no
909921
if [ ".$opt_C" = .yes ]; then
910922
if [ -r $dst ]; then
911-
if cmp -s $src $dst; then
923+
if cmp -s "$src" "$dst"; then
912924
quick=yes
913925
fi
914926
fi
@@ -934,7 +946,7 @@ install )
934946
mkdir )
935947
##
936948
## mkdir -- Make one or more directories
937-
## Copyright (c) 1996-2006 Ralf S. Engelschall <rse@engelschall.com>
949+
## Copyright (c) 1996-2008 Ralf S. Engelschall <rse@engelschall.com>
938950
##
939951

940952
errstatus=0
@@ -991,11 +1003,7 @@ mkdir )
9911003
if [ ".$opt_t" = .yes ]; then
9921004
echo "mkdir $pathcomp" 1>&2
9931005
fi
994-
mkdir $pathcomp || {
995-
_errstatus=$?
996-
[ -d "$pathcomp" ] || errstatus=${_errstatus}
997-
unset _errstatus
998-
}
1006+
mkdir $pathcomp || errstatus=$?
9991007
if [ ".$opt_o" != . ]; then
10001008
if [ ".$opt_t" = .yes ]; then
10011009
echo "chown $opt_o $pathcomp" 1>&2
@@ -1026,7 +1034,7 @@ mkdir )
10261034
platform )
10271035
##
10281036
## platform -- Platform Identification Utility
1029-
## Copyright (c) 2003-2006 Ralf S. Engelschall <rse@engelschall.com>
1037+
## Copyright (c) 2003-2008 Ralf S. Engelschall <rse@engelschall.com>
10301038
##
10311039

10321040
# option post-processing
@@ -1174,6 +1182,22 @@ platform )
11741182
SC="4.4BSD"
11751183
;;
11761184

1185+
# DragonFly BSD
1186+
*:DragonFly:* )
1187+
# determine architecture
1188+
AT="${UNAME_MACHINE}"
1189+
AP="${AT}"
1190+
case "${AP}" in
1191+
i[3-6]86 ) AP="iX86" ;;
1192+
esac
1193+
AC="${AP}"
1194+
# determine system
1195+
r=`echo "${UNAME_RELEASE}" | sed -e 's/\([-_].*\)$/[\1]/'`
1196+
ST="DragonFly ${r}"
1197+
SP="${ST}"
1198+
SC="4.4BSD"
1199+
;;
1200+
11771201
# GNU/Linux
11781202
*:Linux:* )
11791203
# determine architecture
@@ -1221,7 +1245,7 @@ platform )
12211245
-e 's/^#.*$//'`
12221246
case "`util_lower ${n}`" in
12231247
redhat )
1224-
if [ ".`grep 'Red Hat Enterprise Linux' /etc/${tagfile}`" != . ]; then
1248+
if [ ".`egrep '(Red Hat Enterprise Linux|CentOS)' /etc/${tagfile}`" != . ]; then
12251249
n="<R>ed <H>at <E>nterprise <L>inux"
12261250
else
12271251
n="<R>ed <H>at <L>inux"
@@ -1230,7 +1254,7 @@ platform )
12301254
debian ) n="Debian[ GNU/Linux]" ;;
12311255
ubuntu ) n="Ubuntu[ GNU/Linux]" ;;
12321256
fedora ) n="<Fedora> Core[ GNU/Linux]" ;;
1233-
suse ) n="SuSE[ Linux]" ;;
1257+
suse ) n="[Novell ]SUSE[ Linux]" ;;
12341258
mandrake*|mandriva ) n="Mandriva[ Linux]" ;;
12351259
gentoo ) n="Gentoo[ GNU/Linux]" ;;
12361260
slackware ) n="Slackware[ Linux]" ;;
@@ -1390,15 +1414,16 @@ platform )
13901414

13911415
# IBM AIX
13921416
*:AIX:* )
1393-
cpu_arch=rs6000
1417+
# determine architecture
1418+
cpu_arch=RS6000
13941419
if [ -x /usr/sbin/lsdev -a -x /usr/sbin/lsattr ]; then
13951420
cpu_id=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
13961421
if [ ".`/usr/sbin/lsattr -El ${cpu_id} | grep -i powerpc`" != . ]; then
1397-
cpu_arch=powerpc
1422+
cpu_arch=PPC
13981423
fi
13991424
elif [ -d /QOpenSys ]; then
14001425
# IBM i5/OS (aka OS/400) with PASE (Portable Application Solutions Environment)
1401-
cpu_arch=powerpc
1426+
cpu_arch=PPC
14021427
fi
14031428
if [ -x /usr/bin/oslevel ]; then
14041429
os_level=`/usr/bin/oslevel`
@@ -1411,6 +1436,7 @@ platform )
14111436
AT="${cpu_arch}"
14121437
AP="${AT}"
14131438
AC="${AP}"
1439+
# determine system
14141440
ST="[IBM ]<AIX >${os_level}"
14151441
SP="${ST}"
14161442
case "${os_level}" in
@@ -1419,20 +1445,78 @@ platform )
14191445
esac
14201446
;;
14211447

1422-
# Apple MacOS X Darwin
1448+
# Apple Mac OS X (Darwin)
14231449
*:Darwin:* )
1424-
AT=`uname -p`
1450+
# determine architecture
1451+
AT="`uname -p`"
14251452
case "${AT}" in
14261453
powerpc ) AT="PPC" ;;
14271454
esac
14281455
AP="${AT}"
1456+
case "${AP}" in
1457+
i?86 ) AP="iX86" ;;
1458+
esac
14291459
AC="${AP}"
1430-
case "${AC}" in
1431-
i?86 ) AC="iX86" ;;
1460+
# determine system
1461+
unset v1; unset v2; unset v3
1462+
eval `echo "${UNAME_RELEASE}" |\
1463+
sed -e 's/^/#/' \
1464+
-e 's/^#\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$/v1="\1"; v2="\2"; v3="\3"/' \
1465+
-e 's/^#\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$/v1="\1"; v2="\2"/' \
1466+
-e 's/^#\([0-9][0-9]*\).*$/v1="\1"/' \
1467+
-e 's/^#.*$/v1="0"/'`
1468+
ST="[Apple ]<${UNAME_SYSTEM} ${v1}>${v2+.$v2}${v3+[.$v3]}"
1469+
SP="$ST"
1470+
v="`(sw_vers) 2>/dev/null | grep 'ProductVersion:' | sed -e 's/^ProductVersion:[^0-9]*\([0-9][0-9.]*\).*$/\1/'`"
1471+
if [ ".$v" = . ]; then
1472+
for name in System Server; do
1473+
if [ -f /System/Library/CoreServices/${name}Version.plist ]; then
1474+
v=`(defaults read "/System/Library/CoreServices/${name}Version" "ProductVersion") 2>/dev/null`
1475+
[ ".$v" != . ] && break
1476+
fi
1477+
done
1478+
fi
1479+
if [ ".$v" != . ]; then
1480+
unset v1; unset v2; unset v3
1481+
eval `echo "${v}" |\
1482+
sed -e 's/^/#/' \
1483+
-e 's/^#\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$/v1="\1"; v2="\2"; v3="\3"/' \
1484+
-e 's/^#\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$/v1="\1"; v2="\2"/' \
1485+
-e 's/^#\([0-9][0-9]*\).*$/v1="\1"/' \
1486+
-e 's/^#.*$/v1="0"/'`
1487+
SP="[Apple ]Mac OS X ${v1}${v2+.$v2}${v3+[.$v3]}"
1488+
fi
1489+
SC="4.4BSD/Mach3.0"
1490+
;;
1491+
1492+
# Windows/Cygwin
1493+
*:CYGWIN*:* )
1494+
# determine architecture
1495+
AT="`uname -m`"
1496+
AP="${AT}"
1497+
case "${AP}" in
1498+
i?86 ) AP="iX86" ;;
1499+
esac
1500+
AC="${AP}"
1501+
# determine system
1502+
unset v1; unset v2; unset v3
1503+
eval `echo "${UNAME_RELEASE}" |\
1504+
sed -e 's/^/#/' \
1505+
-e 's/^#\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$/v1="\1"; v2="\2"; v3="\3"/' \
1506+
-e 's/^#\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$/v1="\1"; v2="\2"/' \
1507+
-e 's/^#\([0-9][0-9]*\).*$/v1="\1"/' \
1508+
-e 's/^#.*$/v1="0"/'`
1509+
ST="Cygwin ${v1}${v2+.$v2}${v3+[.$v3]}"
1510+
SP="$ST"
1511+
SC="Windows"
1512+
v=`echo "${UNAME_SYSTEM}" | sed -e 's/^CYGWIN_NT-//' |\
1513+
sed -e 's/^/#/' -e 's/^#\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/' -e 's/^#.*$//'`
1514+
case "$v" in
1515+
4.0 ) SC="$SC[ NT]" ;;
1516+
5.0 ) SC="$SC[ 2000]" ;;
1517+
5.1 ) SC="$SC[ XP]" ;;
1518+
6.0 ) SC="$SC[ Vista]" ;;
14321519
esac
1433-
ST="[Apple ]${UNAME_SYSTEM} ${UNAME_RELEASE}"
1434-
SP="${ST}"
1435-
SC="4.4BSD/Mach3"
14361520
;;
14371521

14381522
# TODO ...ADD YOUR NEW PLATFORM CHECK HERE... TODO
@@ -1579,7 +1663,7 @@ platform )
15791663
path )
15801664
##
15811665
## path -- Deal with program paths
1582-
## Copyright (c) 1998-2006 Ralf S. Engelschall <rse@engelschall.com>
1666+
## Copyright (c) 1998-2008 Ralf S. Engelschall <rse@engelschall.com>
15831667
##
15841668

15851669
namelist="$*"

0 commit comments

Comments
 (0)