diff --git a/bin/freebsd-version/freebsd-version.sh.in b/bin/freebsd-version/freebsd-version.sh.in index be1be366f652..f22264c597fa 100644 --- a/bin/freebsd-version/freebsd-version.sh.in +++ b/bin/freebsd-version/freebsd-version.sh.in @@ -39,6 +39,7 @@ LOADER_RE2='^\([A-Z_a-z][0-9A-Z_a-z]*="[-./0-9A-Z_a-z]\{1,\}"\).*$' KERNEL_RE='^@@TYPE@@ \([-.0-9A-Za-z]\{1,\}\) .*$' progname=${0##*/} +progverb=0 # # Print an error message and exit. @@ -67,6 +68,8 @@ kernel_version() { if [ ! -f "$kernfile" -o ! -r "$kernfile" ] ; then error "unable to locate kernel" fi + [ $progverb -gt 0 ] && \ + what -qs "$kernfile" || \ what -qs "$kernfile" | sed -n "s/$KERNEL_RE/\\1/p" } @@ -74,6 +77,8 @@ kernel_version() { # Print the version of the currently running kernel. # running_version() { + [ $progverb -gt 0 ] && \ + echo `sysctl -n kern.osrelease kern.osreldate` || \ sysctl -n kern.osrelease } @@ -81,6 +86,8 @@ running_version() { # Print the hardcoded userland version. # userland_version() { + [ $progverb -gt 0 ] && \ + echo $USERLAND_VERSION `uname -U` || \ echo $USERLAND_VERSION } @@ -97,7 +104,7 @@ jail_version() { # Print a usage string and exit. # usage() { - echo "usage: $progname [-kru] [-j jail]" >&2 + echo "usage: $progname [-kruv] [-j jail]" >&2 exit 1 } @@ -107,7 +114,7 @@ usage() { main() { # parse command-line arguments local OPTIND=1 OPTARG option - while getopts "kruj:" option ; do + while getopts "kruvj:" option ; do case $option in k) opt_k=1 @@ -118,6 +125,9 @@ main() { u) opt_u=1 ;; + v) + progverb=1 + ;; j) if [ $opt_j ] ; then jail="$jail $OPTARG"