1
1
#! /bin/sh
2
2
# #
3
3
# # 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>
5
5
# #
6
6
# # See http://www.gnu.org/software/shtool/ for more information.
7
7
# # See ftp://ftp.gnu.org/gnu/shtool/ for latest version.
8
8
# #
9
- # # Version: 2.0.6 (19-Apr-2006 )
9
+ # # Version: 2.0.8 (18-Jul-2008 )
10
10
# # Contents: 5/19 available modules
11
11
# #
12
12
@@ -92,8 +92,8 @@ if [ $# -eq 0 ]; then
92
92
exit 1
93
93
fi
94
94
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>'
97
97
echo ' Report bugs to <bug-shtool@gnu.org>'
98
98
echo ' '
99
99
echo ' Usage: shtool [<options>] [<cmd-name> [<cmd-options>] [<cmd-args>]]'
@@ -161,11 +161,11 @@ if [ ".$1" = ".-h" ] || [ ".$1" = ".--help" ]; then
161
161
exit 0
162
162
fi
163
163
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 )"
165
165
exit 0
166
166
fi
167
167
if [ " .$1 " = " .-r" ] || [ " .$1 " = " .--recreate" ]; then
168
- shtoolize -oshtool echo install mkdir platform path
168
+ shtoolize -obuild/shtool echo install mkdir platform path
169
169
exit 0
170
170
fi
171
171
if [ " .$1 " = " .-d" ] || [ " .$1 " = " .--debug" ]; then
@@ -473,7 +473,7 @@ case $tool in
473
473
echo )
474
474
# #
475
475
# # 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>
477
477
# #
478
478
479
479
text=" $* "
@@ -594,11 +594,14 @@ echo )
594
594
userid=` grep " ^${username} :" /etc/passwd 2> /dev/null | \
595
595
sed -e ' s/[^:]*:[^:]*://' -e ' s/:.*$//' `
596
596
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/:.*$//' `
600
599
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
602
605
fi
603
606
fi
604
607
fi
@@ -623,10 +626,14 @@ echo )
623
626
groupid=` grep " ^${username} :" /etc/passwd 2> /dev/null | \
624
627
sed -e ' s/[^:]*:[^:]*:[^:]*://' -e ' s/:.*$//' `
625
628
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/:.*$//' `
628
631
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
630
637
fi
631
638
fi
632
639
fi
@@ -651,11 +658,16 @@ echo )
651
658
groupname=` grep " ^[^:]*:[^:]*:${groupid} :" /etc/group 2> /dev/null | \
652
659
sed -e ' s/:.*$//' `
653
660
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} :" | \
656
663
sed -e ' s/:.*$//' `
657
664
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
659
671
fi
660
672
fi
661
673
fi
@@ -771,7 +783,7 @@ echo )
771
783
install )
772
784
# #
773
785
# # 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>
775
787
# #
776
788
777
789
# special case: "shtool install -d <dir> [...]" internally
@@ -857,12 +869,12 @@ install )
857
869
if [ " .$opt_t " = .yes ]; then
858
870
echo " cp $src $dsttmp " 1>&2
859
871
fi
860
- cp $src $dsttmp || shtool_exit $?
872
+ cp " $src " " $dsttmp " || shtool_exit $?
861
873
else
862
874
if [ " .$opt_t " = .yes ]; then
863
875
echo " mv $src $dsttmp " 1>&2
864
876
fi
865
- mv $src $dsttmp || shtool_exit $?
877
+ mv " $src " " $dsttmp " || shtool_exit $?
866
878
fi
867
879
868
880
# adjust the target file
@@ -873,7 +885,7 @@ install )
873
885
do
874
886
sed=" $sed -e '$e '"
875
887
done
876
- cp $dsttmp $dsttmp .old
888
+ cp " $dsttmp " " $dsttmp .old"
877
889
chmod u+w $dsttmp
878
890
eval " $sed <$dsttmp .old >$dsttmp " || shtool_exit $?
879
891
rm -f $dsttmp .old
@@ -908,7 +920,7 @@ install )
908
920
quick=no
909
921
if [ " .$opt_C " = .yes ]; then
910
922
if [ -r $dst ]; then
911
- if cmp -s $src $dst ; then
923
+ if cmp -s " $src " " $dst " ; then
912
924
quick=yes
913
925
fi
914
926
fi
@@ -934,7 +946,7 @@ install )
934
946
mkdir )
935
947
# #
936
948
# # 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>
938
950
# #
939
951
940
952
errstatus=0
@@ -991,11 +1003,7 @@ mkdir )
991
1003
if [ " .$opt_t " = .yes ]; then
992
1004
echo " mkdir $pathcomp " 1>&2
993
1005
fi
994
- mkdir $pathcomp || {
995
- _errstatus=$?
996
- [ -d " $pathcomp " ] || errstatus=${_errstatus}
997
- unset _errstatus
998
- }
1006
+ mkdir $pathcomp || errstatus=$?
999
1007
if [ " .$opt_o " != . ]; then
1000
1008
if [ " .$opt_t " = .yes ]; then
1001
1009
echo " chown $opt_o $pathcomp " 1>&2
@@ -1026,7 +1034,7 @@ mkdir )
1026
1034
platform )
1027
1035
# #
1028
1036
# # 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>
1030
1038
# #
1031
1039
1032
1040
# option post-processing
@@ -1174,6 +1182,22 @@ platform )
1174
1182
SC=" 4.4BSD"
1175
1183
;;
1176
1184
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
+
1177
1201
# GNU/Linux
1178
1202
* :Linux:* )
1179
1203
# determine architecture
@@ -1221,7 +1245,7 @@ platform )
1221
1245
-e ' s/^#.*$//' `
1222
1246
case " ` util_lower ${n} ` " in
1223
1247
redhat )
1224
- if [ " .` grep ' Red Hat Enterprise Linux' /etc/${tagfile} ` " != . ]; then
1248
+ if [ " .` egrep ' ( Red Hat Enterprise Linux|CentOS) ' /etc/${tagfile} ` " != . ]; then
1225
1249
n=" <R>ed <H>at <E>nterprise <L>inux"
1226
1250
else
1227
1251
n=" <R>ed <H>at <L>inux"
@@ -1230,7 +1254,7 @@ platform )
1230
1254
debian ) n=" Debian[ GNU/Linux]" ;;
1231
1255
ubuntu ) n=" Ubuntu[ GNU/Linux]" ;;
1232
1256
fedora ) n=" <Fedora> Core[ GNU/Linux]" ;;
1233
- suse ) n=" SuSE[ Linux]" ;;
1257
+ suse ) n=" [Novell ]SUSE[ Linux]" ;;
1234
1258
mandrake* |mandriva ) n=" Mandriva[ Linux]" ;;
1235
1259
gentoo ) n=" Gentoo[ GNU/Linux]" ;;
1236
1260
slackware ) n=" Slackware[ Linux]" ;;
@@ -1390,15 +1414,16 @@ platform )
1390
1414
1391
1415
# IBM AIX
1392
1416
* :AIX:* )
1393
- cpu_arch=rs6000
1417
+ # determine architecture
1418
+ cpu_arch=RS6000
1394
1419
if [ -x /usr/sbin/lsdev -a -x /usr/sbin/lsattr ]; then
1395
1420
cpu_id=` /usr/sbin/lsdev -C -c processor -S available | sed 1q | awk ' { print $1 }' `
1396
1421
if [ " .` /usr/sbin/lsattr -El ${cpu_id} | grep -i powerpc` " != . ]; then
1397
- cpu_arch=powerpc
1422
+ cpu_arch=PPC
1398
1423
fi
1399
1424
elif [ -d /QOpenSys ]; then
1400
1425
# IBM i5/OS (aka OS/400) with PASE (Portable Application Solutions Environment)
1401
- cpu_arch=powerpc
1426
+ cpu_arch=PPC
1402
1427
fi
1403
1428
if [ -x /usr/bin/oslevel ]; then
1404
1429
os_level=` /usr/bin/oslevel`
@@ -1411,6 +1436,7 @@ platform )
1411
1436
AT=" ${cpu_arch} "
1412
1437
AP=" ${AT} "
1413
1438
AC=" ${AP} "
1439
+ # determine system
1414
1440
ST=" [IBM ]<AIX >${os_level} "
1415
1441
SP=" ${ST} "
1416
1442
case " ${os_level} " in
@@ -1419,20 +1445,78 @@ platform )
1419
1445
esac
1420
1446
;;
1421
1447
1422
- # Apple MacOS X Darwin
1448
+ # Apple Mac OS X ( Darwin)
1423
1449
* :Darwin:* )
1424
- AT=` uname -p`
1450
+ # determine architecture
1451
+ AT=" ` uname -p` "
1425
1452
case " ${AT} " in
1426
1453
powerpc ) AT=" PPC" ;;
1427
1454
esac
1428
1455
AP=" ${AT} "
1456
+ case " ${AP} " in
1457
+ i? 86 ) AP=" iX86" ;;
1458
+ esac
1429
1459
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]" ;;
1432
1519
esac
1433
- ST=" [Apple ]${UNAME_SYSTEM} ${UNAME_RELEASE} "
1434
- SP=" ${ST} "
1435
- SC=" 4.4BSD/Mach3"
1436
1520
;;
1437
1521
1438
1522
# TODO ...ADD YOUR NEW PLATFORM CHECK HERE... TODO
@@ -1579,7 +1663,7 @@ platform )
1579
1663
path )
1580
1664
# #
1581
1665
# # 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>
1583
1667
# #
1584
1668
1585
1669
namelist=" $* "
0 commit comments