On Fri, Oct/31/2008 01:01:02PM, Jeff Squyres wrote: > Re-sending to the MTT list, because I think our listserver will > automatically block Brian (I'll add him to the whitelist for future > posts!).
I'm getting a syntax error: $ whatami whatami: syntax error at line 149: `DISTRIB_ID=$' unexpected Not sure if I'm doing a bad copy/paste out of my mail client. Jeff, can you send the new whatami script as an attachment? -Ethan > > > On Oct 31, 2008, at 12:56 PM, Brian Elliott Finley wrote: > >> I've taken a look at Ethan's patch. I like the patch, and I like the >> concept. I made a small modification to it, breaking it out into a >> subroutine, which I think makes the logic a bit easier to follow. >> >> Take a look and try this out. If it works for you, I'll commit it. >> >> Cheers, -Brian >> >> >> >> >> Jeff Squyres wrote: >>> Let's commit Ethan's patch, then, and see what Brian wants to do >>> upstream. >>> >>> On Oct 31, 2008, at 11:57 AM, Tim Mattox wrote: >>> >>>> Sorry about that, I missed that Ethan had supplied a workaround >>>> patch. Oops. >>>> Ethan's patch works for me on sles9. >>>> >>>> On Fri, Oct 31, 2008 at 11:42 AM, Jeff Squyres <jsquy...@cisco.com> >>>> wrote: >>>>> Ok. Does Ethan's patch work for you, or should we just revert to our >>>>> prior >>>>> version until upstream is fixed? >>>>> >>>>> On Oct 31, 2008, at 11:39 AM, Tim Mattox wrote: >>>>> >>>>>> The new version of whatami is what broke sles9. That new version >>>>>> assumes >>>>>> that if an /etc/lsb-release file exists that it has info about what >>>>>> distribution it is. >>>>>> SLES seems to only put in what LSB it conforms to (the LSB_VERSION >>>>>> environment variable). >>>>>> Whatami should check if it got all the info it needs from the >>>>>> lsb-release >>>>>> file, >>>>>> and if not, fall back to something else that worked before. >>>>>> >>>>>> I just reverted the whatami I am using on BigRed to MTT's r1236 and it >>>>>> works >>>>>> again. No rush to fix this for me, but it is bad that whatami seems >>>>>> to >>>>>> now >>>>>> be broken for two major SLES releases (9 & 10). >>>>>> >>>>>> On Fri, Oct 31, 2008 at 11:29 AM, Jeff Squyres <jsquy...@cisco.com> >>>>>> wrote: >>>>>>> >>>>>>> Which patch broke BigRed -- Ethan's patch, or Brian's original new >>>>>>> version >>>>>>> of whatami? >>>>>>> >>>>>>> >>>>>>> On Oct 31, 2008, at 11:20 AM, Tim Mattox wrote: >>>>>>> >>>>>>>> This change also broke whatami for sles9 (which happens to be what >>>>>>>> our >>>>>>>> BigRed >>>>>>>> PPC cluster is running). >>>>>>>> >>>>>>>> 2008/10/30 Ethan Mallove <ethan.mall...@sun.com>: >>>>>>>>> >>>>>>>>> Hi Brian, >>>>>>>>> >>>>>>>>> I'm using your "whatami" in the MPI Testing Tool (MTT), but >>>>>>>>> I think a recent change to it broke for our sles10 system. >>>>>>>>> We have an lsb-release file that is different from what >>>>>>>>> "whatami" expects: >>>>>>>>> >>>>>>>>> $ cat /etc/lsb-release >>>>>>>>> >>>>>>>>> >>>>>>>>> LSB_VERSION="core-2.0-noarch:core-3.0-noarch:core-2.0-x86_64:core-3.0-x86_64" >>>>>>>>> >>>>>>>>> $ uname -a >>>>>>>>> Linux burl-ct-v20z-6 2.6.16.46-0.12-smp #1 SMP Thu May 17 >>>>>>>>> 14:00:09 UTC >>>>>>>>> 2007 x86_64 x86_64 x86_64 GNU/Linux >>>>>>>>> >>>>>>>>> I attached a patch. >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Ethan >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> mtt-users mailing list >>>>>>>>> mtt-us...@open-mpi.org >>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-users >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Tim Mattox, Ph.D. - http://homepage.mac.com/tmattox/ >>>>>>>> tmat...@gmail.com || timat...@open-mpi.org >>>>>>>> I'm a bright... http://www.the-brights.net/ >>>>>>>> _______________________________________________ >>>>>>>> mtt-users mailing list >>>>>>>> mtt-us...@open-mpi.org >>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-users >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Jeff Squyres >>>>>>> Cisco Systems >>>>>>> >>>>>>> _______________________________________________ >>>>>>> mtt-users mailing list >>>>>>> mtt-us...@open-mpi.org >>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-users >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Tim Mattox, Ph.D. - http://homepage.mac.com/tmattox/ >>>>>> tmat...@gmail.com || timat...@open-mpi.org >>>>>> I'm a bright... http://www.the-brights.net/ >>>>>> _______________________________________________ >>>>>> mtt-users mailing list >>>>>> mtt-us...@open-mpi.org >>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-users >>>>> >>>>> >>>>> -- >>>>> Jeff Squyres >>>>> Cisco Systems >>>>> >>>>> _______________________________________________ >>>>> mtt-users mailing list >>>>> mtt-us...@open-mpi.org >>>>> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-users >>>>> >>>> >>>> >>>> >>>> -- >>>> Tim Mattox, Ph.D. - http://homepage.mac.com/tmattox/ >>>> tmat...@gmail.com || timat...@open-mpi.org >>>> I'm a bright... http://www.the-brights.net/ >>>> _______________________________________________ >>>> mtt-users mailing list >>>> mtt-us...@open-mpi.org >>>> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-users >>> >>> >> >> -- >> Brian Elliott Finley >> CIS / Argonne National Laboratory >> Office: 630.252.4742 >> Mobile: 630.631.6621 >> #!/bin/sh >> # >> # whatami >> # Prints a string describing the system type. >> # >> # $Id: >> # >> # "whatami" is part of Msys, the MCS Systems Administration Toolkit. >> # For more information, see http://www.mcs.anl.gov/systems/software/ . >> # >> # Copyright (c) University of Chicago 1999. >> # See the COPYRIGHT file in the distribution for details on the copyright. >> # >> # >> =========================================================================== >> # >> # Description: >> # >> # Try to figure out what type of machine we're running on. >> # >> # The string returned is one that is useful to distinguish between >> # system architectures, where we think of machines with the same >> architectures >> # as machines that should be using the same set of compiled software. >> # >> # One would think that you could already get such a string from an >> existing >> # UNIX utility. But, no, this appears not to be the case. "uname" and >> # "arch" come close, but are inconsistent. Thus this script is basically >> # a wrapper around those. >> # >> # Several other programs in the Msys distribution (and innumerable scripts >> # around MCS) call this program. >> # >> # >> =========================================================================== >> # TODO: >> # >> # Authors: >> # >> # Remy Evard <ev...@mcs.anl.gov> >> # - Version 1.0 and 2.0: >> # 2003.03.12 Brian Elliott Finley <fin...@anl.gov> >> # - added get_linux_type function to provide a three part type: >> # Ie: linux-debian_unstable-ia32, or linux-sles8-ia64 >> # - added -o (option_test) >> # 2003.10.16 Larry A. Diegel <diege...@sdsc.edu> >> # - patch for aix-5 >> # 2004.01.17 Brian Elliott Finley <fin...@anl.gov> >> # - modified --help output >> # - accept --long-options as well as -s (short options) >> # 2004.02.04 Brian Elliott Finley <fin...@anl.gov> >> # - identify macosx on ppc and ppc64 >> # - identify linux on Opteron (x86_64) >> # 2004.02.26 Brian Elliott Finley <fin...@anl.gov> >> # - add redhat AS >> # - add mandrake 9.1 >> # - add redhat 9 >> # - add redhat 8 >> # 2005.01.19 Susan Coghlan <s...@mcs.anl.gov> >> # - add sles8 PPC64 >> # 2005.02.01 Susan Coghlan <s...@mcs.anl.gov> >> # - add sles9 >> # 2005.03.07 Brian Elliott Finley >> # - add rhel, and deal w/different versions, sub-distros (AS|EL|WS) >> # 2005.04.21 Peter Couvares <p...@cs.wisc.edu> >> # - add tao linux 1.0, cygwin >> # 2005.04.22 Ti Leggett <legg...@mcs.anl.gov> >> # - add Gentoo >> # 2006.03.14 JP Navarro <nava...@mcs.anl.gov> >> # - more precise AIX type, aix-{version}.{release} >> # - add Cray Rocks 1.3 >> # - add CentOS 4.0 >> # - add SGI ProPack 3 -> rhel3 >> # - add SGI ProPack 4 -> sles9 >> # - add SuSE 9.1 >> # 2006.03.21 JP Navarro <nava...@mcs.anl.gov> >> # - add Fedora Core <n> >> # - drop RHEL sub-distros >> # - ClassAd output support >> # - XML output support >> # 2006.03.30 Ti Leggett <legg...@mcs.anl.gov> >> # - Fixed CentOS to recognize 4.x instead of only 4.0 >> # 2006.10.17 JP Navarro <nava...@mcs.anl.gov> >> # - Add SuSE 10.1 >> # 2007.01.02 JP Navarro <nava...@mcs.anl.gov> >> # - Add SuSE 10.2 >> # 2007.02.06 Ti Leggett <legg...@mcs.anl.gov> >> # - Add MacOS on Intel support >> # 2008.10.14 Brian Finley <fin...@anl.gov> >> # - Add generic lsb_release support >> # - includes CentOS 5.x >> # 2008.10.30 Ethan Mallove <ethan.mall...@sun.com> >> # - Support two different SuSE 10 lsb-release file formats >> # 2008.10.30 Brian Finley <fin...@anl.gov> >> # - Turn Ethan's code and concept into a subroutine. >> # >> # Authors -- Be sure to increment the version number appropriately! >> # >> # >> =========================================================================== >> # >> # Exit codes: >> # >> # 0 on success >> # 1 on failure to grok arguments or figure out architecture details >> # >> # >> =========================================================================== >> # >> # Machine type strings: >> # >> # sun4 >> # irix-5 >> # irix-6 >> # solaris >> # freebsd >> # aix-{version}.{release} >> # aux >> # hpux >> # mips >> # osf >> # digital >> # next >> # linux-{distro_and_version}-{architecture} >> # solaris86 >> # solarishp >> # nt >> # ntalpha >> # >> # >> =========================================================================== >> >> program=`echo $0 | sed 's:.*/::'` >> version="2008.10.31" >> >> ################################################################################ >> # >> # Subroutines >> # >> >> get_lsb_info_if_available() >> { >> if [ -f /etc/lsb-release ]; then >> # >> # 1) Example contents of /etc/lsb-release from Ubuntu Hardy: >> # DISTRIB_ID=Ubuntu >> # DISTRIB_RELEASE=8.04 >> # DISTRIB_CODENAME=hardy >> # DISTRIB_DESCRIPTION="Ubuntu hardy (development branch)" >> # 2) Example contents of /etc/lsb-release from SLES 9: >> # >> LSB_VERSION="core-2.0-noarch:core-3.0-noarch:core-2.0-x86_64:core-3.0-x86_64" >> . /etc/lsb-release >> >> elif [ -x /usr/bin/lsb_release ]; then >> DISTRIB_ID=$(/usr/bin/lsb_release -i | sed -e 's/^Distributor >> ID:[[:space:]]//') >> DISTRIB_RELEASE=$(/usr/bin/lsb_release -r | sed -e >> 's/^Release:[[:space:]]//') >> fi >> } >> >> get_linux_type() >> { >> >> ############################################################################ >> # >> # Step 1) Determine $hardware string (in Linux terms, based on >> architecture >> # names used by the Linux kernel. See >> /usr/src/linux/hardware/ for >> # details). >> # >> case $uhardware in >> alpha) >> hardware=alpha >> ;; >> i386|i486|i586|i686) >> hardware=ia32 >> ;; >> ppc64) >> hardware=ppc64 >> ;; >> ia64) >> hardware=ia64 >> ;; >> x86_64) >> hardware=x86_64 >> ;; >> *) >> hardware=unknown_hardware_please_send_us_a_patch >> ;; >> esac >> # >> >> ############################################################################ >> >> >> ############################################################################ >> # >> # Step 2) Determine $distro (distribution) string >> # >> # NOTES: Put newer tests higher up, as they'll most >> # likely get hit first. -BEF- >> # NOTES: But, make sure that newer programatic tests don't >> override >> # older tests with different results. -BEF- >> # >> >> # >> # If lsb-release contains the DISTRIB* variables we need - use >> # them, otherwise, defer to tests later down the line. >> # >> get_lsb_info_if_available >> if [ "${DISTRIB_ID}" != "" -a "${DISTRIB_RELEASE}" != "" ]; then >> distro=${DISTRIB_ID}_${DISTRIB_RELEASE} >> >> elif [ -f /etc/issue ]; then >> >> if [ -e /etc/debian_version ]; then >> distro_brand=debian >> distro_version=`cat /etc/debian_version | sed >> 's#testing/##'` >> distro=${distro_brand}_${distro_version} >> >> elif [ -e /etc/gentoo-release ]; then >> distro_brand=gentoo >> # If you think there should be a version, >> # uncomment out the following >> #gentoo_profile=`readlink /etc/make.profile` >> #distro_version=`basename ${gentoo_profile}` >> #distro=${distro_brand}_${distro_version} >> distro=${distro_brand} >> >> elif [ -n "`egrep 'Scientific Linux SL release [0-9\.]+' >> /etc/issue`" ]; then >> distro_ver="`grep 'Scientific Linux' /etc/issue | >> sed -e 's/.*release \([0-9]*\.[0-9]*\).*/\1/'`" >> distro=scientificlinux_$distro_ver >> >> elif [ -n "`egrep 'Red Hat Enterprise Linux ([a-zA-Z]+) >> release [0-9]*' /etc/issue`" ]; then >> distro_brand=rhel >> #sub_distro=` grep 'Red Hat' /etc/issue | sed -e >> 's/Red Hat Enterprise Linux \([A-Z][A-Z]\) release \([0-9]*\).*/\1/' ` >> distro_version=`grep 'Red Hat' /etc/issue | sed -e >> 's/Red Hat Enterprise Linux \([a-zA-Z]*\) release \([0-9]*\).*/\2/' ` >> >> #distro=${distro_brand}${distro_version}_${sub_distro} >> distro=${distro_brand}${distro_version} >> >> elif [ -n "`egrep 'Cray Rocks Linux release 1.3' >> /etc/issue`" ]; then >> distro=rh73 >> >> elif [ -n "`egrep 'SGI ProPack 3' /etc/issue`" ]; then >> distro=rhel3 >> >> elif [ -n "`egrep 'CentOS release 4.[0-9]' /etc/issue`" ]; >> then >> distro=rhel4 >> >> elif [ -n "`egrep 'SuSE SLES 8' /etc/issue`" ]; then >> distro=sles8 >> >> elif [ -n "`egrep 'Red Hat Linux Advanced Server release >> 2.1AS ' /etc/issue`" ]; then >> distro=redhat_2.1AS >> >> elif [ -n "`egrep 'Red Hat Linux release 9 ' /etc/issue`" >> ]; then >> distro=redhat_9 >> >> elif [ -n "`egrep 'Red Hat Linux release 8.0 ' /etc/issue`" >> ]; then >> distro=redhat_8.0 >> >> elif [ -n "`egrep 'Mandrake Linux release 9.1 ' >> /etc/issue`" ]; then >> distro=mandrake_9.1 >> >> elif [ -n "`egrep 'SGI ProPack 4' /etc/issue`" ]; then >> distro=sles9 >> >> elif [ -n "`egrep 'SUSE LINUX Enterprise Server 9' >> /etc/issue`" ]; then >> distro=sles9 >> elif [ -n "`egrep 'SUSE Linux Enterprise Server 10' >> /etc/issue`" ]; then >> distro=sles10 >> >> elif [ -n "`egrep 'SuSE SLES 8' /etc/issue`" ]; then >> distro=sles8 >> >> elif [ -n "`egrep 'UnitedLinux 1.0' /etc/issue`" ]; then >> distro=sles8 >> >> # Welcome to SuSE Linux 9.0 (x86-64) - Kernel \r (\l) >> elif [ -n "`egrep 'SuSE Linux 9\.0' /etc/issue`" ]; then >> distro=suse_9.0 >> >> elif [ -n "`egrep 'SuSE Linux 9\.1' /etc/issue`" ]; then >> distro=suse_9.1 >> >> elif [ -n "`egrep 'SuSE Linux 9\.2' /etc/issue`" ]; then >> distro=suse_9.2 >> >> elif [ -n "`egrep 'SuSE Linux 9\.3' /etc/issue`" ]; then >> distro=suse_9.3 >> >> # Welcome to SUSE LINUX 10.1 (i586) - Kernel \r (\l). >> elif [ -n "`egrep 'SUSE LINUX 10\.1' /etc/issue`" ]; then >> distro=suse_10.1 >> >> # Welcome to openSUSE 10.2 (i586) - Kernel \r (\l). >> elif [ -n "`egrep 'SUSE 10\.2' /etc/issue`" ]; then >> distro=suse_10.2 >> >> elif [ -n "`egrep 'SUSE 10\.3' /etc/issue`" ]; then >> distro=suse_10.3 >> >> elif [ -n "`egrep 'Tao Linux release 1 ' /etc/issue`" ]; >> then >> distro=tao_1.0 >> >> elif [ -n "`egrep 'Fedora Core ' /etc/issue`" ]; then >> distro_brand=fc >> distro_version=`grep 'Fedora Core ' /etc/issue | >> sed -e 's/Fedora Core release \([0-9]*\).*/\1/' ` >> distro=${distro_brand}${distro_version} >> >> elif [ -n "`egrep 'White Box Enterprise Linux release 3.0' >> /etc/issue`" ]; then >> distro=white_box_enterprise_linux_3.0 >> >> else >> distro=unknown_linux_type_please_send_us_a_patch >> fi >> fi >> # >> >> ############################################################################ >> >> >> ############################################################################ >> # >> # Step 3) Put it all together as $type >> # >> type=linux-${distro}-${hardware} >> # >> >> ############################################################################ >> >> os=$uos >> release=$urelease >> } >> >> get_darwin_info() >> { >> >> ############################################################################ >> # >> # step 1) determine $hardware (architecture) string >> # (Should be one of ppc, ppc64. Why these strings? Well, >> we are >> # taking them from the arches directory names in the >> linux kernel >> # source.) -BEF- >> # >> if [ -n "`system_profiler SPHardwareDataType|egrep '(CPU >> Type|Processor Name): PowerPC G4 '`" ]; then >> hardware=ppc >> elif [ -n "`system_profiler SPHardwareDataType|egrep '(CPU >> Type|Processor Name): PowerPC (970|G5) '`" ]; then >> hardware=ppc64 >> elif [ -n "`system_profiler SPHardwareDataType|egrep 'Processor >> Name: Intel Core Duo'`" ]; then >> hardware=ia32 >> elif [ -n "`system_profiler SPHardwareDataType|egrep 'Processor >> Name: (Dual-Core Intel Xeon|Intel Core 2 Duo)'`" ]; then >> hardware=x86_64 >> else >> hardware=unknown_darwin_hardware_please_send_us_a_patch >> fi >> # >> >> ############################################################################ >> >> >> ############################################################################ >> # >> # step 2) determine $distro (distribution) string >> # >> # Thanks to JP Navarro for the get distro version string >> command >> # below. -BEF- >> # >> >> distro_brand=macosx >> distro_version=`sw_vers -productVersion|sed -e >> 's/\([0-9]\{1,2\}\.[0-9]\{1,2\}\).*/\1/'` >> distro=${distro_brand}_${distro_version} >> if [ -z "$distro" ]; then >> distro=unknown_darwin_version_please_send_us_a_patch >> fi >> # >> >> ############################################################################ >> >> >> ############################################################################ >> # >> # Step 3) Put it all together as $type >> # >> type=darwin-${distro}-${hardware} >> # >> >> ############################################################################ >> >> os=$uos >> release=$urelease >> } >> # >> ################################################################################ >> >> # >> # Check the number of arguments and set the mode. >> # >> mode=type >> format=default >> if [ $# = 1 ]; then >> case "$1" in >> --c*|-c* ) >> format=classad >> ;; >> --x*|-x* ) >> format=xml >> ;; >> --t*|-t* ) >> mode=type >> ;; >> --n*|-n* ) >> mode=os >> ;; >> --r*|-r* ) >> mode=release >> ;; >> --m*|-m* ) >> mode=hardware >> ;; >> --a*|-a* ) >> mode=all >> ;; >> --list-all* ) >> mode=list_all >> ;; >> --l*|-l* ) >> mode=list >> ;; >> --v*|-v* ) >> mode=version >> ;; >> --h*|-h* ) >> mode=usage >> ;; >> --o*|-o* ) >> mode=option_test >> # Cycles through and tries each of the other options, for testing >> purposes. >> ;; >> esac >> fi >> >> if [ "$mode" = "unknown" -o "$mode" = "usage" ]; then >> echo "$program $version" >> echo >> echo "Usage: $program [OPTION]" >> echo >> cat <<EOF >> whatami determines the "platform" of the system on which it is run. This >> can be used, for example, to determine which of a series of nfs mounted >> software directories is appropriate for use by the system in question. >> >> No unix utility quite fulfills these requirements, so the "whatami" >> program's >> purpose is to return a single unique string for each platform. This >> string >> can then used in directory names, program switches, and in other clever >> ways. >> >> Options: >> --help, -h >> This help message. >> >> --version, -v >> The version of $program. >> >> --type, -t >> Prints the platform type (the default). >> >> --name, -n >> Prints out the name of the operating system. >> >> --release, -r >> Prints out the name and release of the os, separated by a space. >> >> --machine, -m >> Prints out the architecture type for the machine. >> >> --all, -a >> Prints platform type, hardware, os, and version, seperated by a space. >> >> --list, -l >> Lists summary of known description strings. >> >> Please send patches to MCS Systems <syst...@mcs.anl.gov>. >> >> EOF >> >> >> if [ "$mode" = "usage" ]; then >> exit 0 >> else >> exit 1 >> fi >> fi >> >> # >> =========================================================================== >> # Okay, now we know what we should do... if the mode is list or the >> version >> # that's easy to get out of the way. >> # >> # Be sure to add to this list whenever a new architecture is figured out. >> # >> =========================================================================== >> >> if [ "$mode" = "list" ]; then >> cat <<EOF >> type: cpu os version >> ================================== >> linux: (potential linux platform strings are numerous, >> and may not be known in advance) >> aix-3.x: * AIX 3.x >> aix-4.x: * AIX 4.x >> aix-5.x: * AIX 5.x >> aux: * A/UX * >> freebsd: * FreeBSD * >> hpux: * HP-UX * >> irix-5: * IRIX 5.x >> irix-6: * IRIX 6.x >> osf: * OSF1 * >> solaris: sparc SunOS 5.x >> sun4: sparc SunOS 4.x >> ultrix: * Ultrix * >> EOF >> exit 0 >> fi >> >> if [ "$mode" = "version" ]; then >> echo "$program $version" >> exit 0 >> fi >> >> if [ "$mode" = "option_test" ]; then >> # >> # Test all options for whatami (except this one, of course) >> # >> for opt in -t -n -r -m -a -v --version -h --help -l >> do >> cmd="$0 $opt" >> echo -n "$cmd: " >> $cmd >> if [ ! $? = 0 ]; then >> echo "Failed on option $opt" >> exit 1 >> fi >> done >> exit 0 >> fi >> >> # >> =========================================================================== >> # Find uname, store its location in $UNAME >> # >> =========================================================================== >> >> UNAME=unknown >> for dir in `echo $PATH | sed 's/:/ /g'` ; do >> if [ -f $dir/uname ]; then >> UNAME=$dir/uname >> break >> fi >> done >> >> if [ "$UNAME" = "unknown" ]; then >> echo "Unable to locate uname in the path, which means we're out of luck." >> exit 1 >> fi >> >> >> # >> =========================================================================== >> # Now we try to figure out what we're running on. First we try to get >> # close to the machine type, then we look at the mode and figure out what >> # we need to print out. >> # >> =========================================================================== >> >> uos=`($UNAME -s) 2>/dev/null` || uos=unknown >> urelease=`($UNAME -r) 2>/dev/null` || urelease=unknown >> uhardware=`($UNAME -m) 2>/dev/null` || uhardware=unknown >> >> type=unknown >> os=unknown >> release=unknown >> hardware=unknown >> >> case "${uos}:${urelease}:${uhardware}" in >> AIX:*:*) >> release=`$UNAME -v 2>/dev/null` || release=unknown >> # case $release in >> # 3) >> # type=aix-3 >> # ;; >> # 4) >> # type=aix-4 >> # ;; >> # 5) >> # type=aix-5 >> # ;; >> # esac >> type=aix-$release.$urelease >> os=$uos >> hardware=$uhardware >> ;; >> >> A/UX:*:*) >> type=aux >> os=$uos >> release=$urelease >> hardware=$uhardware >> ;; >> >> CYGWIN_NT-5.1:*:*) >> type=cygwin-5.1 >> os=$uos >> release=$urelease >> hardware=$uhardware >> ;; >> >> Darwin:*:*) >> get_darwin_info >> ;; >> >> FreeBSD:*:*) >> type=freebsd >> os=$uos >> release=$urelease >> hardware=$uhardware >> ;; >> >> HP-UX:*:*) >> type=hpux >> os=$uos >> release=$urelease >> hardware=$uhardware >> ;; >> >> IRIX:5*:*) >> type=irix-5 >> os=$uos >> release=$urelease >> hardware=`$UNAME -p 2>/dev/null` || hardware=unknown >> ;; >> >> # On alaska, uname->IRIX64, but IRIX everywhere else. >> IRIX*:6*:*) >> type=irix-6 >> os=$uos >> release=$urelease >> hardware=`$UNAME -p 2>/dev/null` || hardware=unknown >> ;; >> >> Linux:*:*) >> os=$uos >> release=$urelease >> hardware=$uhardware >> case $uhardware in >> alpha) >> # legacy definition >> type=linux-alpha >> ;; >> *) >> # legacy definitions >> if [ -f /etc/issue ]; then >> if [ -n "`cat /etc/issue | grep "Mandrake release 7.2"`" ]; then >> type=linux-2 >> elif [ -n "`cat /etc/issue | grep "Red Hat Linux release 7.1"`" >> ]; then >> type=linux-rh71 >> elif [ -n "`cat /etc/issue | grep "Red Hat Linux release 7.2"`" >> ]; then >> type=linux-rh72 >> elif [ -n "`cat /etc/issue | grep "Red Hat Linux release 7.3"`" >> ]; then >> type=linux-rh73 >> else >> get_linux_type >> fi >> else >> type=linux >> fi >> ;; >> esac >> ;; >> >> SunOS:4*:*) >> type=sun4 >> os=$uos >> release=$urelease >> hardware=`/bin/arch -k` || hardware=unknown >> ;; >> >> SunOS:5*:*) >> solaris_version=`uname -r | sed 's/^5\.//'` >> type=solaris-${solaris_version} >> os=$uos >> release=$urelease >> hardware=`/bin/arch -k` || hardware=unknown >> ;; >> >> OSF1:*:*) >> type=osf >> os=$uos >> release=$urelease >> hardware=$uhardware >> ;; >> >> ULTRIX:*:*) >> type=ultrix >> os=$uos >> release=$urelease >> hardware=$uhardware >> ;; >> >> >> esac >> >> exit_code=0 >> >> grid="" >> # >> =========================================================================== >> # Got all the info, now just print the right stuff based on mode. >> # >> =========================================================================== >> case $format in >> classad) >> echo ${grid}whatami_type = \"$type\" >> echo ${grid}whatami_os = \"$os\" >> echo ${grid}whatami_release = \"$release\" >> echo ${grid}whatami_hardware = \"$hardware\" >> if [ $os = "Linux" ]; then >> echo ${grid}whatami_distro = \"$distro\" >> fi >> exit >> ;; >> xml) >> echo "<${grid}whatami>" >> echo " <type>$type</type>" >> echo " <os>$os</os>" >> echo " <release>$release</release>" >> echo " <hardware>$hardware</hardware>" >> if [ $os = "Linux" ]; then >> echo " <distro>$distro</distro>" >> fi >> echo "</${grid}whatami>" >> exit >> ;; >> esac >> >> case $mode in >> type) >> if [ $type = "unknown" ]; then >> exit_code=1 >> fi >> echo $type >> ;; >> >> os) >> if [ $os = "unknown" ]; then >> exit_code=1 >> fi >> echo $os >> ;; >> >> release) >> if [ $os = "unknown" -o $release = "unknown" ]; then >> exit_code=1 >> fi >> echo "$os $release" >> ;; >> >> hardware) >> if [ $hardware = "unknown" ]; then >> exit_code=1 >> fi >> echo $hardware >> ;; >> >> all) >> if [ $hardware = "unknown" \ >> -o $os = "unknown" \ >> -o $release = "unknown" ]; then >> exit_code=1 >> fi >> echo "$type $hardware $os $release" >> ;; >> esac >> >> exit $exit_code >> > > > -- > Jeff Squyres > Cisco Systems > > _______________________________________________ > mtt-users mailing list > mtt-us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/mtt-users