|
| 1 | +#! /bin/sh |
| 2 | +## |
| 3 | +## lspci.sh -- |
| 4 | +## |
| 5 | +## Help script for the xcluster ovl/lspci. |
| 6 | +## |
| 7 | +## Commands; |
| 8 | +## |
| 9 | + |
| 10 | +prg=$(basename $0) |
| 11 | +dir=$(dirname $0); dir=$(readlink -f $dir) |
| 12 | +me=$dir/$prg |
| 13 | +tmp=/tmp/${prg}_$$ |
| 14 | + |
| 15 | +die() { |
| 16 | + echo "ERROR: $*" >&2 |
| 17 | + rm -rf $tmp |
| 18 | + exit 1 |
| 19 | +} |
| 20 | +help() { |
| 21 | + grep '^##' $0 | cut -c3- |
| 22 | + rm -rf $tmp |
| 23 | + exit 0 |
| 24 | +} |
| 25 | +test -n "$1" || help |
| 26 | +echo "$1" | grep -qi "^help\|-h" && help |
| 27 | + |
| 28 | +log() { |
| 29 | + echo "$prg: $*" >&2 |
| 30 | +} |
| 31 | +dbg() { |
| 32 | + test -n "$__verbose" && echo "$prg: $*" >&2 |
| 33 | +} |
| 34 | + |
| 35 | +## env |
| 36 | +## Print environment. |
| 37 | +## |
| 38 | +cmd_env() { |
| 39 | + |
| 40 | + if test "$cmd" = "env"; then |
| 41 | + set | grep -E '^(__.*)=' |
| 42 | + retrun 0 |
| 43 | + fi |
| 44 | + |
| 45 | + test -n "$XCLUSTER" || die 'Not set [$XCLUSTER]' |
| 46 | + test -x "$XCLUSTER" || die "Not executable [$XCLUSTER]" |
| 47 | + eval $($XCLUSTER env) |
| 48 | +} |
| 49 | + |
| 50 | +## test --list |
| 51 | +## test [--xterm] [test...] > logfile |
| 52 | +## Exec tests |
| 53 | +## |
| 54 | +cmd_test() { |
| 55 | + if test "$__list" = "yes"; then |
| 56 | + grep '^test_' $me | cut -d'(' -f1 | sed -e 's,test_,,' |
| 57 | + return 0 |
| 58 | + fi |
| 59 | + |
| 60 | + cmd_env |
| 61 | + start=starts |
| 62 | + test "$__xterm" = "yes" && start=start |
| 63 | + rm -f $XCLUSTER_TMP/cdrom.iso |
| 64 | + |
| 65 | + if test -n "$1"; then |
| 66 | + for t in $@; do |
| 67 | + test_$t |
| 68 | + done |
| 69 | + else |
| 70 | + for t in basic; do |
| 71 | + test_$t |
| 72 | + done |
| 73 | + fi |
| 74 | + |
| 75 | + now=$(date +%s) |
| 76 | + tlog "Xcluster test ended. Total time $((now-begin)) sec" |
| 77 | + |
| 78 | +} |
| 79 | + |
| 80 | +test_start() { |
| 81 | + export __image=$XCLUSTER_HOME/hd.img |
| 82 | + echo "$XOVLS" | grep -q private-reg && unset XOVLS |
| 83 | + test -n "$TOPOLOGY" && \ |
| 84 | + . $($XCLUSTER ovld network-topology)/$TOPOLOGY/Envsettings |
| 85 | + xcluster_start network-topology iptools lspci |
| 86 | +} |
| 87 | + |
| 88 | +test_basic() { |
| 89 | + tlog "=== lspci: Basic test" |
| 90 | + test_start |
| 91 | + xcluster_stop |
| 92 | +} |
| 93 | + |
| 94 | +cmd_otc() { |
| 95 | + test -n "$__vm" || __vm=2 |
| 96 | + otc $__vm $@ |
| 97 | +} |
| 98 | + |
| 99 | +. $($XCLUSTER ovld test)/default/usr/lib/xctest |
| 100 | +indent='' |
| 101 | + |
| 102 | +# Get the command |
| 103 | +cmd=$1 |
| 104 | +shift |
| 105 | +grep -q "^cmd_$cmd()" $0 $hook || die "Invalid command [$cmd]" |
| 106 | + |
| 107 | +while echo "$1" | grep -q '^--'; do |
| 108 | + if echo $1 | grep -q =; then |
| 109 | + o=$(echo "$1" | cut -d= -f1 | sed -e 's,-,_,g') |
| 110 | + v=$(echo "$1" | cut -d= -f2-) |
| 111 | + eval "$o=\"$v\"" |
| 112 | + else |
| 113 | + o=$(echo "$1" | sed -e 's,-,_,g') |
| 114 | + eval "$o=yes" |
| 115 | + fi |
| 116 | + shift |
| 117 | +done |
| 118 | +unset o v |
| 119 | +long_opts=`set | grep '^__' | cut -d= -f1` |
| 120 | + |
| 121 | +# Execute command |
| 122 | +trap "die Interrupted" INT TERM |
| 123 | +cmd_$cmd "$@" |
| 124 | +status=$? |
| 125 | +rm -rf $tmp |
| 126 | +exit $status |
0 commit comments