aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKate Ward <kate.ward@forestent.com>2018-01-16 23:12:38 +0100
committerKate Ward <kate.ward@forestent.com>2018-01-16 23:12:38 +0100
commit44075ed16217234a913e9894c6cb5a6741c4586a (patch)
tree0a968ae77337680c4bde4ed31b2494ba330d6989 /lib
parent18f53a5424fa9550acacd152124faeafbef18ce5 (diff)
downloadshflags-44075ed16217234a913e9894c6cb5a6741c4586a.tar.gz
Synced from upstream.
Diffstat (limited to 'lib')
-rwxr-xr-xlib/versions44
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}'
}