diff options
author | Kate Ward <kate.ward@forestent.com> | 2018-01-16 23:12:38 +0100 |
---|---|---|
committer | Kate Ward <kate.ward@forestent.com> | 2018-01-16 23:12:38 +0100 |
commit | 44075ed16217234a913e9894c6cb5a6741c4586a (patch) | |
tree | 0a968ae77337680c4bde4ed31b2494ba330d6989 /lib | |
parent | 18f53a5424fa9550acacd152124faeafbef18ce5 (diff) | |
download | shflags-44075ed16217234a913e9894c6cb5a6741c4586a.tar.gz |
Synced from upstream.
Diffstat (limited to 'lib')
-rwxr-xr-x | lib/versions | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/lib/versions b/lib/versions index 95eebd3..47575e7 100755 --- a/lib/versions +++ b/lib/versions @@ -3,7 +3,7 @@ # # Versions determines the versions of all installed shells. # -# Copyright 2008-2017 Kate Ward. All Rights Reserved. +# Copyright 2008-2018 Kate Ward. All Rights Reserved. # Released under the Apache 2.0 License. # # Author: kate.ward@forestent.com (Kate Ward) @@ -55,10 +55,13 @@ versions_osName() { FreeBSD) os_name_='FreeBSD' ;; Linux) os_name_='Linux' ;; SunOS) - if grep 'OpenSolaris' /etc/release >/dev/null; then - os_name_='OpenSolaris' - else - os_name_='Solaris' + os_name_='SunOS' + if [ -r '/etc/release' ]; then + if grep 'OpenSolaris' /etc/release >/dev/null; then + os_name_='OpenSolaris' + else + os_name_='Solaris' + fi fi ;; esac @@ -99,18 +102,20 @@ versions_osVersion() { fi ;; SunOS) - if grep 'OpenSolaris' /etc/release >/dev/null; then - os_version_=`grep 'OpenSolaris' /etc/release |awk '{print $2"("$3")"}'` - else - major_=`echo "${os_release_}" |sed 's/[0-9]*\.\([0-9]*\)/\1/'` - minor_=`grep Solaris /etc/release |sed 's/[^u]*\(u[0-9]*\).*/\1/'` - os_version_="${major_}${minor_}" + if [ -r '/etc/release' ]; then + if grep 'OpenSolaris' /etc/release >/dev/null; then # OpenSolaris + os_version_=`grep 'OpenSolaris' /etc/release |awk '{print $2"("$3")"}'` + else # Solaris + major_=`echo "${os_release_}" |sed 's/[0-9]*\.\([0-9]*\)/\1/'` + minor_=`grep Solaris /etc/release |sed 's/[^u]*\(u[0-9]*\).*/\1/'` + os_version_="${major_}${minor_}" + fi fi ;; esac echo "${os_version_}" - unset os_name_ os_release_ os_version_ major_ minor_ + unset os_release_ os_system_ os_version_ major_ minor_ } versions_shellVersion() { @@ -134,19 +139,20 @@ versions_shellVersion() { case ${shell_} in */sh) # TODO(kward): fix this - ## this could be one of any number of shells. try until one fits. + ## This could be one of any number of shells. Try until one fits. #version_=`versions_shell_bash ${shell_}` - ## dash cannot be self determined yet + ## dash cannot be self determined yet. #[ -z "${version_}" ] && version_=`versions_shell_ksh ${shell_}` - ## pdksh is covered in versions_shell_ksh() + ## pdksh is covered in versions_shell_ksh(). #[ -z "${version_}" ] && version_=`versions_shell_zsh ${shell_}` + # TODO(20180115:kward) If ${UNAME_S} is SunOS, recommend implementing: + # $ ln -sf /usr/xpg4/bin/sh /bin/sh ;; ash) version_=`versions_shell_ash "${shell_}"` ;; */bash) version_=`versions_shell_bash "${shell_}"` ;; */dash) - # simply assuming Ubuntu Linux until somebody comes up with a better - # test. the following test will return an empty string if dash is not - # installed. + # Assuming Ubuntu Linux until somebody comes up with a better test. The + # following test will return an empty string if dash is not installed. version_=`versions_shell_dash` ;; */ksh) version_=`versions_shell_ksh "${shell_}"` ;; @@ -170,7 +176,7 @@ versions_shell_bash() { versions_shell_dash() { eval dpkg >/dev/null 2>&1 - [ $? -eq 127 ] && return # return if dpkg not found + [ $? -eq 127 ] && return # Return if dpkg not found. dpkg -l |grep ' dash ' |awk '{print $3}' } |