#! /bin/sh # aoe-version - display versions of AoE-related software # Copyright 2013, CORAID, Inc., and licensed under GPL v.2. aoetools=36 # modinfo doesn't always work correctly when there is a file # in the current working directory called "aoe", but it's # not hard to change the current working directory. for wd in . / /sys /var/run /usr /proc /etc /home; do a=`{ cd "$wd" 2> /dev/null && test ! -r aoe && echo yes; } || echo no` if test "$a" = "yes"; then cd "$wd" break fi done # The aoe module isn't guaranteed to be in the location below, # but if we only try to use it when each of the directories # above was not usable, we shouldn't use the hard-coded location # often. aoe=aoe if test -r ./aoe; then aoe="/lib/modules/`uname -r`/kernel/drivers/block/aoe/aoe.ko" fi # standalone aoe drivers have a module parameter "version" installed="`modinfo \"$aoe\" 2>/dev/null | awk '/srcversion/ {next} /^parm:.*version:aoe module/ {print $NF; exit 0}'`" if test -z "$installed"; then # Recent kernels have a "version" of their own, so # they didn't want our module parameter, so we look # for that, too, in case user is using kernel.org driver. installed="`modinfo \"$aoe\" 2>/dev/null | awk '/^version:/ {print $NF; exit 0}'`" fi if test "$?" != "0" || test -z "$installed"; then installed="(unknown)" fi if test -d /sys/module/aoe; then running="`find /sys/module/aoe -name version | sed 1q | xargs cat`" if test "$?" != "0"; then running="(unknown)" fi else running="(none)" fi while read val desc; do printf "%22s:\t%s\n" "$desc" "$val" done <