From 4c9cc48020fb8ddc65dc6fa6d2d2c9b97d11f911 Mon Sep 17 00:00:00 2001 From: Leigh B Stoller <stoller@flux.utah.edu> Date: Thu, 21 Jul 2011 08:05:36 -0600 Subject: [PATCH] Need this on the clientside. --- clientside/tmcc/osstuff.sh | 95 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100755 clientside/tmcc/osstuff.sh diff --git a/clientside/tmcc/osstuff.sh b/clientside/tmcc/osstuff.sh new file mode 100755 index 0000000000..b9bd761b92 --- /dev/null +++ b/clientside/tmcc/osstuff.sh @@ -0,0 +1,95 @@ +#!/bin/sh +# +# EMULAB-COPYRIGHT +# Copyright (c) 2007 University of Utah and the Flux Group. +# All rights reserved. +# + +# +# Figure out which OS, distro. etc. +# Output: TAG=<string> OS=<string> DIST=<string> REL=<string> +# where OS is 'FreeBSD', 'Linux', 'Cygwin', etc. +# DIST for Linux only, is 'Redhat', 'Fedora', 'Ubuntu', etc. +# REL is the release like '6.2', '9.0', '5.1', etc. +# TAG is a unique combo of the above like 'freebsd6', 'fedora4', etc. +# + +if [ $# -ne 1 ]; then + arg="-a" +else + arg=$1 +fi + +os=`uname -s` +tag= +dist= + +case $os in +FreeBSD) + dist="FreeBSD" + rel=`uname -v | sed -e 's/FreeBSD \([0-9]\.[0-9][0-9]*\).*/\1/'` + ;; +Linux) + if [ -r /etc/lsb-release ]; then + dist=`grep DISTRIB_ID /etc/lsb-release | awk -F = '{ print $2; }'` + rel=`grep DISTRIB_RELEASE /etc/lsb-release | awk -F = '{ print $2; }'` + fi + if [ -z "$dist" -a -r /etc/redhat-release ]; then + trel=`grep 'Red Hat' /etc/redhat-release | sed -e 's/Red Hat Linux release \([0-9]\(\.[0-9]\)\?\).*/\1/'` + if [ -n "$trel" ]; then + dist="Redhat" + rel=$trel + fi + trel=`grep 'Fedora' /etc/redhat-release | sed -e 's/Fedora .*release \([0-9.]\+\).*/\1/'` + if [ -n "$trel" ]; then + dist="Fedora" + rel=$trel + fi + trel=`grep 'CentOS' /etc/redhat-release | sed -e 's/CentOS .*release \([0-9.]\+\).*/\1/'` + if [ -n "$trel" ]; then + dist="CentOS" + rel=$trel + fi + fi + # XXX hack check for stargate + if [ -z "$dist" -a `uname -m` = "armv5tel" ]; then + dist="Stargate" + rel=1.0 # XXX probably wrong + fi + ;; +CYGWIN_NT-5.1) # aka Windows XP + tag=$os # XXX compat for tmcd makefile + os="Cygwin" + dist="NT" + rel="5.1" + ;; +*) + dist="Unknown" + rel="0.0" + ;; +esac + +if [ -z "$tag" ]; then + p1=`echo $dist | tr '[A-Z]' '[a-z]'` + p2=`echo $rel | sed -e 's/^\([0-9]*\).*/\1/'` + tag="${p1}${p2}" +fi + +case $arg in +-a) + echo "TAG=$tag OS=$os DIST=$dist REL=$rel" + ;; +-t) + echo "$tag" + ;; +-o) + echo "$os" + ;; +-d) + echo "$dist" + ;; +-r) + echo "$rel" + ;; +esac +exit 0 -- GitLab