head 1.24; access; symbols SHTOOL_1_6:1.22.0.2 SHTOOL_1_6_2:1.22 SHTOOL_1_6_1:1.21 SHTOOL_1_6_0:1.21 SHTOOL_1_5:1.20.0.2 SHTOOL_1_5_4:1.20 SHTOOL_1_5_3:1.20 SHTOOL_1_5_2:1.20 SHTOOL_1_5_1:1.19 SHTOOL_1_5_0:1.19 SHTOOL_1_4_9:1.19 SHTOOL_1_4_8:1.16 SHTOOL_1_4_7:1.15 SHTOOL_1_4_6:1.15 SHTOOL_1_4_5:1.12 SHTOOL_1_4_4:1.12 SHTOOL_1_4_3:1.11 SHTOOL_1_4_2:1.11 SHTOOL_1_4_1:1.10 SHTOOL_1_4_0:1.10 SHTOOL_1_3_3:1.8 SHTOOL_1_3_2:1.7 SHTOOL_1_3_1:1.6 SHTOOL_1_3_0:1.6 SHTOOL_1_2_9:1.5 SHTOOL_1_2_8:1.5 SHTOOL_1_2_7:1.4 SHTOOL_1_2_6:1.3 SHTOOL_1_2_5:1.1.1.1 SHTOOL_1_2_4:1.1.1.1 SHTOOL_1_2_3:1.1.1.1 SHTOOL_1_2_2:1.1.1.1 SHTOOL_1_2_1:1.1.1.1 SHTOOL_1_2_0:1.1.1.1 SHTOOL_1_1_0:1.1.1.1 RSE:1.1.1; locks; strict; comment @# @; 1.24 date 2003.12.13.21.23.55; author rse; state dead; branches; next 1.23; 1.23 date 2003.02.11.12.56.39; author rse; state Exp; branches; next 1.22; 1.22 date 2002.09.04.09.58.42; author ms; state Exp; branches; next 1.21; 1.21 date 2001.09.23.10.58.10; author rse; state Exp; branches; next 1.20; 1.20 date 2000.10.11.16.06.57; author rse; state Exp; branches; next 1.19; 1.19 date 2000.03.24.15.28.09; author rse; state Exp; branches; next 1.18; 1.18 date 2000.03.24.15.26.37; author rse; state Exp; branches; next 1.17; 1.17 date 2000.03.24.15.22.51; author rse; state Exp; branches; next 1.16; 1.16 date 2000.03.12.12.46.42; author rse; state Exp; branches; next 1.15; 1.15 date 99.09.04.10.47.18; author rse; state Exp; branches; next 1.14; 1.14 date 99.07.30.17.38.57; author rse; state Exp; branches; next 1.13; 1.13 date 99.07.30.06.45.43; author rse; state Exp; branches; next 1.12; 1.12 date 99.07.16.14.25.31; author rse; state Exp; branches; next 1.11; 1.11 date 99.07.09.06.48.27; author rse; state Exp; branches; next 1.10; 1.10 date 99.07.01.15.04.36; author rse; state Exp; branches; next 1.9; 1.9 date 99.07.01.15.02.47; author rse; state Exp; branches; next 1.8; 1.8 date 99.06.29.17.37.34; author rse; state Exp; branches; next 1.7; 1.7 date 99.06.28.15.18.44; author rse; state Exp; branches; next 1.6; 1.6 date 99.06.12.14.08.49; author rse; state Exp; branches; next 1.5; 1.5 date 99.05.25.15.46.58; author rse; state Exp; branches; next 1.4; 1.4 date 99.05.13.16.38.10; author rse; state Exp; branches; next 1.3; 1.3 date 99.05.13.15.15.04; author rse; state Exp; branches; next 1.2; 1.2 date 99.05.13.15.09.15; author rse; state Exp; branches; next 1.1; 1.1 date 99.04.29.11.19.49; author rse; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 99.04.29.11.19.49; author rse; state Exp; branches; next ; desc @@ 1.24 log @Replaced old and inflexible "shtool guessos" command with a completely new command "shtool platform" command. It distinguishes a Unix platform according to its hardware architecture and operating system. For both there is a class, product and technology identification. For each of those six identifications, there is a verbose, regular and concise version. @ text @## ## guessos -- Simple operating system guesser ## Copyright (c) 1996-1999 The Apache Group, http://www.apache.org/ ## The Apache license applies (see http://www.apache.org/docs/LICENSE) ## Originally written for Apache ## str_tool="guessos" str_usage="" arg_spec="0=" opt_spec="" opt_alias="" . ./sh.common MACHINE=`(uname -m) 2>/dev/null` || MACHINE=`(uname -p) 2>/dev/null` || MACHINE="unknown" RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown" SYSTEM=`(uname -s) 2>/dev/null` || SYSTEM="unknown" VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown" XREL=`(uname -X) 2>/dev/null | grep "^Release" | awk '{print $3}'` if [ "x$XREL" != "x" ]; then if [ -f /etc/kconfig ]; then case "$XREL" in 4.0|4.1) echo "${MACHINE}-whatever-isc4"; shtool_exit 0 ;; esac else case "$XREL" in 3.2v4.2) echo "whatever-whatever-sco3"; shtool_exit 0 ;; 3.2v5.0*) echo "whatever-whatever-sco5"; shtool_exit 0 ;; 4.2MP) if [ "x$VERSION" = "x2.1.1" ]; then echo "${MACHINE}-whatever-unixware211"; shtool_exit 0 elif [ "x$VERSION" = "x2.1.2" ]; then echo "${MACHINE}-whatever-unixware212"; shtool_exit 0 else echo "${MACHINE}-whatever-unixware2"; shtool_exit 0 fi ;; 4.2) echo "whatever-whatever-unixware1"; shtool_exit 0 ;; 5) case "$VERSION" in 7*) echo "${MACHINE}-whatever-unixware7"; shtool_exit 0 ;; esac ;; esac fi fi case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in MiNT:*) echo "m68k-atari-mint"; shtool_exit 0 ;; A/UX:*) echo "m68k-apple-aux3"; shtool_exit 0 ;; AIX:*) MACH=`echo $MACHINE | sed -e 's;[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F];;'` echo "${MACH}-ibm-aix${VERSION}.${RELEASE}"; shtool_exit 0 ;; dgux:*) echo "${MACHINE}-dg-dgux"; shtool_exit 0 ;; HI-UX:*) echo "${MACHINE}-hi-hiux"; shtool_exit 0 ;; HP-UX:*) HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'` MACHINE=`echo ${MACHINE}|sed -e 's:/:_:'` echo "${MACHINE}-hp-hpux${HPUXVER}"; shtool_exit 0 ;; IRIX:*) if [ -f /usr/lib32/mips4/libm.so ]; then echo "${MACHINE}/32-sgi-irix${RELEASE}"; shtool_exit 0 else echo "${MACHINE}-sgi-irix${RELEASE}"; shtool_exit 0 fi ;; IRIX64:*) echo "${MACHINE}/64-sgi-irix${RELEASE}"; shtool_exit 0 ;; Linux:*) V='whatever' case "$MACHINE" in i?86) V='pc' ;; esac R='' case "$RELEASE" in [1-9].*) R=`echo $RELEASE | cut -c1` ;; esac echo "${MACHINE}-${V}-linux-gnu${R}"; shtool_exit 0 ;; LynxOS:*) echo "${MACHINE}-lynx-lynxos"; shtool_exit 0 ;; BSD/386|BSD/OS:3.*) echo "${MACHINE}-whatever-bsdi3"; shtool_exit 0 ;; BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*) echo "i486-whatever-bsdi"; shtool_exit 0 ;; BSD/386:*|BSD/OS:*) echo "${MACHINE}-whatever-bsdi"; shtool_exit 0 ;; FreeBSD:*) VERS=`echo ${RELEASE} | sed -e 's/[-(].*//'` MACH=`/sbin/sysctl -n hw.model` ARCH='whatever' case ${MACH} in *386* ) MACH="i386" ;; *486* ) MACH="i486" ;; Pentium\ II*) MACH="i686" ;; Pentium* ) MACH="i586" ;; Alpha* ) MACH="alpha" ;; * ) MACH="$MACHINE" ;; esac case ${MACH} in i[0-9]86 ) ARCH="pc" ;; esac echo "${MACH}-${ARCH}-freebsd${VERS}"; shtool_exit 0 ;; NetBSD:*:*:*486*) echo "i486-whatever-netbsd${RELEASE}"; shtool_exit 0 ;; NetBSD:*) echo "${MACHINE}-whatever-netbsd${RELEASE}"; shtool_exit 0 ;; OpenBSD:*) echo "${MACHINE}-whatever-openbsd"; shtool_exit 0 ;; OSF1:*:*:*alpha*) VERS=`echo $RELEASE | sed -e 's;^V;;'` echo "${MACHINE}-dec-osf${VERS}"; shtool_exit 0 ;; QNX:*) if [ "$VERSION" -gt 422 ]; then echo "${MACHINE}-qssl-qnx32" else echo "${MACHINE}-qssl-qnx" fi shtool_exit 0 ;; Paragon*:*:*:*) echo "i860-intel-osf1"; shtool_exit 0 ;; SunOS:5.*) VERSION=`echo $RELEASE | sed -e 's;^5\.;;'` echo "${MACHINE}-sun-solaris2.${VERSION}"; shtool_exit 0 ;; SunOS:*) echo "${MACHINE}-sun-sunos4"; shtool_exit 0 ;; UNIX_System_V:4.*:*) echo "${MACHINE}-whatever-sysv4"; shtool_exit 0 ;; unix:3.0.9*:*:88k) echo "${MACHINE}-encore-sysv4"; shtool_exit 0 ;; *:4*:R4*:m88k) echo "${MACHINE}-whatever-sysv4"; shtool_exit 0 ;; UnixWare:5:99*:*) # Gemini, beta release of next rev of unixware echo "${MACHINE}-whatever-unixware212"; shtool_exit 0 ;; DYNIX/ptx:4*:*) echo "${MACHINE}-whatever-sysv4"; shtool_exit 0 ;; *:4.0:3.0:[345][0-9]?? | *:4.0:3.0:3[34]??[/,]* | library:*) echo "x86-ncr-sysv4"; shtool_exit 0 ;; ULTRIX:*) echo "${MACHINE}-unknown-ultrix"; shtool_exit 0 ;; SINIX-?:* | ReliantUNIX-?:*) echo "${MACHINE}-siemens-sysv4"; shtool_exit 0 ;; POSIX*BS2000) echo "${MACHINE}-siemens-sysv4"; shtool_exit 0 ;; machten:*) echo "${MACHINE}-tenon-${SYSTEM}"; shtool_exit 0; ;; ConvexOS:*:11.*:*) echo "${MACHINE}-v11-${SYSTEM}"; shtool_exit 0; ;; UNIX_SV:*:*:maxion) echo "${MACHINE}-ccur-sysv4"; shtool_exit 0; ;; PowerMAX_OS:*:*:Night_Hawk) MACHINE=`uname -p` echo "${MACHINE}-concurrent-powermax"; shtool_exit 0; ;; UNIX_SV:*) if [ -d /usr/nec ];then echo "mips-nec-sysv4"; shtool_exit 0; fi ;; NonStop-UX:4.[02]*:[BC]*:*) echo "${MACHINE}-tandem-sysv4"; shtool_exit 0; ;; Rhapsody:*:*:*) case "${MACHINE}" in "Power Macintosh") MACHINE=powerpc ;; esac echo "${MACHINE}-apple-rhapsody${RELEASE}"; shtool_exit 0 ;; Darwin:*:*:*) MACHINE=`uname -p` echo "${MACHINE}-apple-darwin${RELEASE}"; shtool_exit 0 ;; "Mac OS":*:*:*) MACHINE=`uname -p` echo "${MACHINE}-apple-macos${RELEASE}"; shtool_exit 0 ;; "RISC iX":*) echo "arm-whatever-riscix"; shtool_exit 0; ;; *:4.0:2:*) echo "whatever-unisys-sysv4"; shtool_exit 0; ;; *:*:dcosx:NILE*) echo "pyramid-pyramid-svr4"; shtool_exit 0; ;; *:*:*:"DRS 6000") echo "drs6000-whatever-whatever"; shtool_exit 0; ;; AmigaOS:*:*:* ) echo "${MACHINE}-whatever-${SYSTEM}${RELEASE}"; shtool_exit 0 ;; esac # Now NeXT ISNEXT=`(hostinfo) 2>/dev/null` case "$ISNEXT" in *NeXT*) # Swiped from a friendly uname clone for NEXT/OPEN Step. NEXTOSVER="`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`" if [ "$NEXTOSVER" -gt 3.3 ]; then NEXTOS="openstep" else NEXTOS="nextstep" fi NEXTREL="`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`" NEXTARCH=`arch` echo "${NEXTARCH}-next-${NEXTOS}${NEXTREL}" ; shtool_exit 0 ;; esac # Fallback echo "${MACHINE}-unknown-${SYSTEM}/${RELEASE}/${VERSION}" @ 1.23 log @Fixed error exit in all commands by introducing an "shtool_exit" function (which correctly cleans up temporary files) and replacing all "exit" calls with "shtool_exit". THIS THE FIRST TIME INTRODUCED THE USAGE OF A SHELL FUNCTION TO THE SHTOOL CODE. This is known to break on _very_ anchient and broken Bourne-Shell implementations and is considered to be no longer a real problem in the year 2003. Especially there is no alternative way anyway. @ text @@ 1.22 log @Please review. Added support for guessing the Darwin OS. @ text @d25 1 a25 1 4.0|4.1) echo "${MACHINE}-whatever-isc4"; exit 0 ;; d30 1 a30 1 echo "whatever-whatever-sco3"; exit 0 d33 1 a33 1 echo "whatever-whatever-sco5"; exit 0 d37 1 a37 1 echo "${MACHINE}-whatever-unixware211"; exit 0 d39 1 a39 1 echo "${MACHINE}-whatever-unixware212"; exit 0 d41 1 a41 1 echo "${MACHINE}-whatever-unixware2"; exit 0 d45 1 a45 1 echo "whatever-whatever-unixware1"; exit 0 d49 1 a49 1 7*) echo "${MACHINE}-whatever-unixware7"; exit 0 ;; d57 1 a57 1 echo "m68k-atari-mint"; exit 0 d60 1 a60 1 echo "m68k-apple-aux3"; exit 0 d64 1 a64 1 echo "${MACH}-ibm-aix${VERSION}.${RELEASE}"; exit 0 d67 1 a67 1 echo "${MACHINE}-dg-dgux"; exit 0 d70 1 a70 1 echo "${MACHINE}-hi-hiux"; exit 0 d75 1 a75 1 echo "${MACHINE}-hp-hpux${HPUXVER}"; exit 0 d79 1 a79 1 echo "${MACHINE}/32-sgi-irix${RELEASE}"; exit 0 d81 1 a81 1 echo "${MACHINE}-sgi-irix${RELEASE}"; exit 0 d85 1 a85 1 echo "${MACHINE}/64-sgi-irix${RELEASE}"; exit 0 d96 1 a96 1 echo "${MACHINE}-${V}-linux-gnu${R}"; exit 0 d99 1 a99 1 echo "${MACHINE}-lynx-lynxos"; exit 0 d102 1 a102 1 echo "${MACHINE}-whatever-bsdi3"; exit 0 d105 1 a105 1 echo "i486-whatever-bsdi"; exit 0 d108 1 a108 1 echo "${MACHINE}-whatever-bsdi"; exit 0 d125 1 a125 1 echo "${MACH}-${ARCH}-freebsd${VERS}"; exit 0 d128 1 a128 1 echo "i486-whatever-netbsd${RELEASE}"; exit 0 d131 1 a131 1 echo "${MACHINE}-whatever-netbsd${RELEASE}"; exit 0 d134 1 a134 1 echo "${MACHINE}-whatever-openbsd"; exit 0 d138 1 a138 1 echo "${MACHINE}-dec-osf${VERS}"; exit 0 d146 1 a146 1 exit 0 d149 1 a149 1 echo "i860-intel-osf1"; exit 0 d153 1 a153 1 echo "${MACHINE}-sun-solaris2.${VERSION}"; exit 0 d156 1 a156 1 echo "${MACHINE}-sun-sunos4"; exit 0 d159 1 a159 1 echo "${MACHINE}-whatever-sysv4"; exit 0 d162 1 a162 1 echo "${MACHINE}-encore-sysv4"; exit 0 d165 1 a165 1 echo "${MACHINE}-whatever-sysv4"; exit 0 d169 1 a169 1 echo "${MACHINE}-whatever-unixware212"; exit 0 d172 1 a172 1 echo "${MACHINE}-whatever-sysv4"; exit 0 d175 1 a175 1 echo "x86-ncr-sysv4"; exit 0 d178 1 a178 1 echo "${MACHINE}-unknown-ultrix"; exit 0 d181 1 a181 1 echo "${MACHINE}-siemens-sysv4"; exit 0 d184 1 a184 1 echo "${MACHINE}-siemens-sysv4"; exit 0 d187 1 a187 1 echo "${MACHINE}-tenon-${SYSTEM}"; exit 0; d190 1 a190 1 echo "${MACHINE}-v11-${SYSTEM}"; exit 0; d193 1 a193 1 echo "${MACHINE}-ccur-sysv4"; exit 0; d197 1 a197 1 echo "${MACHINE}-concurrent-powermax"; exit 0; d201 1 a201 1 echo "mips-nec-sysv4"; exit 0; d205 1 a205 1 echo "${MACHINE}-tandem-sysv4"; exit 0; d211 1 a211 1 echo "${MACHINE}-apple-rhapsody${RELEASE}"; exit 0 d215 1 a215 1 echo "${MACHINE}-apple-darwin${RELEASE}"; exit 0 d219 1 a219 1 echo "${MACHINE}-apple-macos${RELEASE}"; exit 0 d222 1 a222 1 echo "arm-whatever-riscix"; exit 0; d225 1 a225 1 echo "whatever-unisys-sysv4"; exit 0; d228 1 a228 1 echo "pyramid-pyramid-svr4"; exit 0; d231 1 a231 1 echo "drs6000-whatever-whatever"; exit 0; d234 1 a234 1 echo "${MACHINE}-whatever-${SYSTEM}${RELEASE}"; exit 0 d251 1 a251 1 echo "${NEXTARCH}-next-${NEXTOS}${NEXTREL}" ; exit 0 @ 1.21 log @*** empty log message *** @ text @d213 4 @ 1.20 log @*** empty log message *** @ text @d12 1 @ 1.19 log @*** empty log message *** @ text @d73 1 @ 1.18 log @*** empty log message *** @ text @d250 1 a250 1 echo "${MACHINE}-whatever-${SYSTEM}/${RELEASE}/${VERSION}" @ 1.17 log @*** empty log message *** @ text @d15 1 a15 1 MACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown" @ 1.16 log @*** empty log message *** @ text @d2 1 a2 1 ## guessos -- Simple OS/platform guesser @ 1.15 log @*** empty log message *** @ text @d10 1 a10 1 arg_spec="0" @ 1.14 log @*** empty log message *** @ text @d110 1 a110 1 MACH=`sysctl -n hw.model` @ 1.13 log @*** empty log message *** @ text @d227 3 @ 1.12 log @*** empty log message *** @ text @d247 1 a247 1 echo "${MACHINE}-whatever-${SYSTEM}|${RELEASE}|${VERSION}" @ 1.11 log @*** empty log message *** @ text @d83 1 a83 1 echo "${MACHINE}-sgi-irix64"; exit 0 @ 1.10 log @*** empty log message *** @ text @d85 10 a94 5 Linux:[2-9].*) echo "${MACHINE}-whatever-linux2"; exit 0 ;; Linux:1.*) echo "${MACHINE}-whatever-linux1"; exit 0 @ 1.9 log @*** empty log message *** @ text @d28 2 a29 2 3.2v4.2) echo "whatever-whatever-sco3"; exit 0 d31 2 a32 2 3.2v5.0*) echo "whatever-whatever-sco5"; exit 0 @ 1.8 log @*** empty log message *** @ text @d43 1 a43 1 4.2) d235 1 a235 1 NEXTREL="`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`" @ 1.7 log @*** empty log message *** @ text @d44 1 a44 1 echo "whatever-whatever-unixware1"; exit 0 d242 1 a242 1 echo "${MACHINE}-whatever-${SYSTEM}|${RELEASE}|${VERSION}" @ 1.6 log @*** empty log message *** @ text @d13 1 a13 1 . sh.common @ 1.5 log @*** empty log message *** @ text @a0 1 #!/bin/sh d2 1 a2 1 ## guessos -- Simple OS/Platform guesser d5 1 a5 2 ## Cleaned up by Ralf S. Engelschall for shtool ## Usage: guessos d8 7 d223 1 a223 5 # existance of the /usr/apollo directory is proof enough for Apollo if [ -d /usr/apollo ]; then echo "whatever-apollo-whatever" exit 0 fi d225 1 a225 1 ISNEXT=`hostinfo 2>/dev/null` d241 1 @ 1.4 log @*** empty log message *** @ text @d57 1 a57 1 MACH=`echo $MACHINE | sed -e 's;[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9];;'` @ 1.3 log @*** empty log message *** @ text @d57 2 a58 1 echo "${MACHINE}-ibm-aix${VERSION}.${RELEASE}"; exit 0 d72 1 a72 1 echo "${MACHINE}-sgi-irix32"; exit 0 d74 1 a74 1 echo "${MACHINE}-sgi-irix"; exit 0 d116 1 a116 1 echo "i486-whatever-netbsd"; exit 0 d119 1 a119 1 echo "${MACHINE}-whatever-netbsd"; exit 0 d125 2 a126 1 echo "${MACHINE}-dec-osf"; exit 0 @ 1.2 log @*** empty log message *** @ text @d88 3 d195 1 a195 1 Power*) MACHINE=powerpc ;; d198 4 @ 1.1 log @Initial revision @ text @d135 2 a136 7 SOLVER=`echo ${RELEASE}|awk -F. '{ if (NF < 3) printf "2%s0\n",$2 else printf "2%s%s\n",$2,$3 }'` echo "${MACHINE}-sun-solaris2.${SOLVER}"; exit 0 @ 1.1.1.1 log @Import of shtool 1.1.0 @ text @@