4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#! /bin/sh
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# distro.in: print distribution information
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# $Id$
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# Copyright (C) 2001-2002 Matthew R. MacIntyre <matt@pipfield.ca>
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# This program is free software; you can redistribute it and/or modify
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# it under the terms of the GNU General Public License as published by
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# the Free Software Foundation; either version 2 of the License, or
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# (at your option) any later version.
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# This program is distributed in the hope that it will be useful,
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# but WITHOUT ANY WARRANTY; without even the implied warranty of
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# GNU General Public License for more details.
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
107e00c8104649437b9520d0ba298dba659e7cd7JazzyNico# You should have received a copy of the GNU General Public License
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# along with this program; if not, write to the Free Software
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerPN=`basename $0`
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerVER="0.8.1+inkscape"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner#
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner# Fatal($msg,$retval)
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner#
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner# Display an error message to stderr and exit
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner#
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerFatal () {
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner echo -e "${PN}: $1\nTerminating...." 1>&2
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner test -n "$2" && exit $2
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner exit 1
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner}
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# Help()
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# Display help information and exit
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoHelp () {
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico cat <<EOF
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoUsage: ${PN} [OPTION]...
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoPrint certain distribution information. With no OPTION, same as -f.
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoOptions:
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico -a, --all print all information
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico -c, --codename print the distribution code name
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico -f, --ftp-name print the ftp name of the distribution
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico -n, --name print the distribution name
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico -r, --release print the distribution release
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico -h, --help display this help and exit
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico -v, --version output version information and exit
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoReport bugs to <matt@pipfield.ca>.
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoEOF
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico exit 0
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico}
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# Version()
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# Display version information and exit
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoVersion () {
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico cat <<EOF
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico${PN} v${VER}
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoWritten by Matthew R. MacIntyre.
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoCopyright (c) 2001-2002 Matthew R. MacIntyre.
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoThis is free software; see the source for copying conditions. There is NO
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicowarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoEOF
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico exit 0
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico}
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#######################
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# Program starts here #
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#######################
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# Set initial values for our configuration variables
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoALL=0
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoCODENAME=0
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoFTPNAME=0
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoNAME=0
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoRELEASE=0
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico# Parse the command-line arguments
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico#
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNico
4a7ebbf91a516d588a7dcc45921c17a896b65f62JazzyNicoOPTERR=0
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerwhile getopts "\-:acfhnrv" opt; do
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner case $opt in
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner h) Help; shift ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner v) Version; shift ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner a) ALL=1 ; shift; break;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner c) CODENAME=1; shift; break;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner f) FTPNAME=1; shift; break;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner n) NAME=1; shift; break;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner r) RELEASE=1; shift; break;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner -) # long options
0033c073cef3bdf51409b8f8b37914941f340257apenner case "$OPTARG" in
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner help) Help; shift ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner version) Version; shift ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner all) ALL=1 ; shift ; break ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner codename) CODENAME=1 ; shift ; break ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner ftp-name) FTPNAME=1 ; shift ; break ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner name) NAME=1; shift ; break ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner release) RELEASE=1; shift ; break ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner *) Fatal "Illegal option -- \"--$OPTARG\"\nTry ${PN} --help for more information." 1 ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner esac ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner *) Fatal "Illegal option -- \"-$OPTARG\"\nTry ${PN} --help for more information." 1 ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner esac
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerdone
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner#
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner# Find the contents from the appropriate file, and store it in
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner# $contents. Store the filename in $filename.
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner#
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennercontents=""
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerfilename=""
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennercase "`uname`" in
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner OpenBSD|FreeBSD|NetBSD|CYGWIN*) contents="`uname -a`" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner Linux)
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner files="/etc/mandrake-release /etc/SuSE-release \
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner /usr/share/doc/ubuntu-base/changelog.gz \
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner /etc/redhat-release /etc/debian_version \
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner /etc/slackware-version /etc/.issue \
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner /etc/ROCK-LINUX /etc/gentoo-release"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner for file in $files; do
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner if test -f "$file"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner filename="$file"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner if test -n "`echo $filename | grep ubuntu`"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner contents="`cat /etc/issue`"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner else
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner contents="`cat $file`"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner fi
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner break
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner fi
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner done
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner if test -z "$filename"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner Fatal "Cannot find distribution information"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner fi
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner SunOS)
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner contents="`cat /etc/release`"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner filename='/etc/release'
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner *) Fatal "Cannot find distribution information" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenneresac
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner#
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner# Output the appropriate information
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner#
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennersum="`expr $ALL + $CODENAME + $FTPNAME + $NAME + $RELEASE`"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerif test $sum -eq 0 || test $FTPNAME -eq 1; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # FIXME: incorporate this bit into the case statement
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner if ! test -n "`echo $filename | grep ubuntu`"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner name="`echo $filename | sed -e 's|/etc/||' -e 's|-*release$||' -e 's|[-_]version$||' -e 's|\.issue||' | tr '[A-Z]' '[a-z]' | tr -d '-'`"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner fi
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # If that didn't work, then we likely have Solaris, Debian,
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # FreeBSD, or maybe even ROCK LINUX
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner if test -z "$name"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner case "`uname`" in
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner CYGWIN*) name="cygwin" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner OpenBSD|FreeBSD|NetBSD) name="`uname | tr '[A-Z]' '[a-z]'`" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner Linux)
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner if test -n "`grep debian $filename`"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner name="debian"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner elif test -n "`echo $filename | grep ubuntu`"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner name="ubuntu"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner elif test -n "`grep -i caldera $filename`"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner name="openlinux"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner fi
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner SunOS) name="solaris" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner *) Fatal "Cannot determine ftp-name for this system: `uname`" 1 ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner esac
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner fi
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # Get the version number
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner case $name in
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner cygwin) version="`uname -r | sed -e 's!\.!!g' -e 's!^\([0-9][0-9]*\).*$!\1!'`" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner debian) version="`sed -e 's!\.!!'g -e 's!^testing/!-!' $filename`" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner ubuntu) version="`echo $contents | awk '{print $2}'`" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner freebsd) version="`uname -r | sed -e 's!\([0-9][0-9]*\)\.\([0-9][0-9]*\).*!\1\2!'`" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner openbsd|netbsd) version="`uname -r | sed -e 's!\.!!g'`" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner rocklinux) version="`sed -e 's!^.*Linux \([0-9]\.[0-9]\.*[0-9]*\).*$!\1!' $filename | tr -d '.' | sed -e 's!0$!!'`" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner slackware) version="`sed -e 's!\.!!g' -e 's!\([0-9]*\).*$!\1!' -e 's!\([0-9][0-9]*\)0$!\1!' $filename`" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner solaris) version="`echo $contents | sed -e 's!^European !!' -e 's!^Solaris \([0-9]\.*[0-9]*\) .*$!\1!' -e 's!\.!!g'`" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner *)
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # This is just a reasonable guess
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner version="`echo $contents | sed -n '1,1'p | sed -e 's!.*\([0-9][0-9]*\.[0-9][0-9]*[a-z]*\).*!\1!' -e 's!\([0-9][0-9]*\)\.\([0-9][0-9]*[a-z]*\)!\1\2!'`" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner esac
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner echo "$name$version"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerelif test $CODENAME -eq 1 ; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # Certain systems (Solaris) don't have codenames. This checks to see
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # if there is one before figuring out what it is
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner codename=""
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # check for a codename, but strip out the *BSD stuff, a misleading entry in ROCK-Linux,
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # and an ix86 bit in the various SuSE releases.
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner if test -n "`echo $contents | sed -e 's!(GENERIC)!!' -e 's!(native, .*)!!' -e 's!(i[3456]86)!!' | egrep "^.* \(.*\).*$"`"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner codename="`echo $contents | sed -e 's!.*(\(.*\)).*$!\1!'`"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner elif test -n "`echo $filename | grep ubuntu`"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # For ubuntu, steal it out of the contents report
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner codename="`echo $contents | awk -F\\\" '{print $2}'`"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner elif test -n "`echo $filename | grep debian`"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # For debian, we have to determine them manually
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner case "`cat $filename`" in
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner testing/unstable) codename='etch/sid' ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner 3.1) codename='sarge' ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner 3.0) codename='woody' ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner 2.2) codename='potato' ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner 2.1) codename='slink' ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner 2.0) codename='hamm' ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner 1.3*) codename='bo' ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner 1.2) codename='rex' ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner 1.1) codename='buzz' ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner esac
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner fi
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner if test -n "$codename"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner echo "$codename"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner fi
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerelif test $ALL -eq 1 ; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # Call the script recursively to get the desired string, since the
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # Solaris format isn't the same. It is done through sh as a hack
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # to help when developing the script, and it isn't executable
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner string=`sh "$0" --name`
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner if test x"`uname`" = x"Linux"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # We only want to add the word "release" for Linux
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # distributions. It's not a convention to use the word
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # "release" for any other type of system.
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # Don't add the word 'release' if we're on debian testing
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner if test x"`sh $0 --release`" != x"testing/unstable"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner string="$string release"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner fi
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner fi
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner string="$string `sh $0 --release`"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner codename=`sh "$0" --codename`
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner if test -n "$codename"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner string="$string ($codename)"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner fi
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # Strip out instances of too many spaces
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner string="`echo $string | tr -s ' '`"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner echo "$string"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerelif test $NAME -eq 1 ; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner case "`uname`" in
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner Linux|SunOS)
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # It is done this way because the string for Solaris is a
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # little different than the various versions of Linux
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner name="`echo $contents | sed -e 's![0-9].*$!!' -e 's![\ ]*release[\ ]*!!' -e 's![\ ][\ ]*$!!g'`"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # Hmmmm .... some are a little different
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner if test -n "`echo $filename | grep debian`"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner name="Debian GNU/Linux"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner elif test -n "`echo $filename | grep ubuntu`"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner name="Ubuntu Linux"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner elif test -n "`echo $filename | grep slackware`"; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner name="Slackware Linux"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner fi
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner CYGWIN*) name="Cygwin" ;; # FIXME: not sure if we have to differentiate between NT and others
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner *) name="`uname`" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner esac
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner echo "$name"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerelif test $RELEASE -eq 1 ; then
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner case "`uname`" in
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner OpenBSD|FreeBSD|NetBSD|CYGWIN*) release="`uname -r | sed -e 's!(.*$!!'`" ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner *)
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner # Cut letters and spaces out up to the first number
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner release="`echo $contents | sed -e 's!^[A-Za-z\ ]*\([0-9]\.*[0-9]*\.*[0-9]*[a-z]*\).*$!\1!'`"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner ;;
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner esac
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner echo "$release"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerelse
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner Fatal "Something unexpected has happened!"
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapennerfi
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner# All done.
ffbd2f8fa3a83d1d4ad8cd672cf738ffaa5cdfeeapenner