diff --git a/scripts/get_os.sh b/scripts/get_os.sh index 0a4a2eb7..e622e2c9 100644 --- a/scripts/get_os.sh +++ b/scripts/get_os.sh @@ -37,12 +37,51 @@ usage() [ "$1" ] && exit $1 } +cmd_name_version() +{ + if [ -r /etc/os-release ]; then + . /etc/os-release + if [ "$opt_verbose" ]; then + echo $NAME $VERSION + else + if grep -qi tumbleweed /etc/os-release; then + echo suse-tumbleweed + else + echo $ID-$VERSION_ID | sed 's/opensuse/suse/g' + fi + fi + exit + fi + + if [ -e /etc/SuSE-release ]; then + if [ "$opt_verbose" ]; then + head -1 /etc/SuSE-release + else + VERSION="`grep VERSION /etc/SuSE-release | sed -e 's/.*=//; s/ //g'`" + echo suse-$VERSION + fi + exit + fi + + if [ "$opt_verbose" ]; then + uname -a + else + uname -r + fi +} + +cmd_version() +{ + cmd_name_version | cut -d- -f2- +} + # --- here we go myname=`basename $0` release_file=/etc/os-release +cmd=name_version -set -- `getopt 'hv' $*` +set -- `getopt 'hvV' $*` while [ "$1" != -- ] ; do case "$1" in -h) @@ -51,6 +90,9 @@ case "$1" in -v) opt_verbose=1; ;; + -V) + cmd=version + ;; *) usage 1 ;; @@ -59,32 +101,5 @@ shift done shift -if [ -r /etc/os-release ]; then - . /etc/os-release - if [ "$opt_verbose" ]; then - echo $NAME $VERSION - else - if grep -qi tumbleweed /etc/os-release; then - echo suse-tumbleweed - else - echo $ID-$VERSION_ID | sed 's/opensuse/suse/g' - fi - fi - exit -fi +eval cmd_$cmd -if [ -e /etc/SuSE-release ]; then - if [ "$opt_verbose" ]; then - head -1 /etc/SuSE-release - else - VERSION="`grep VERSION /etc/SuSE-release | sed -e 's/.*=//; s/ //g'`" - echo suse-$VERSION - fi - exit -fi - -if [ "$opt_verbose" ]; then - uname -a -else - uname -r -fi