rework
authorJoerg Jaspert <joerg@debian.org>
Fri, 9 Dec 2011 20:58:16 +0000 (21:58 +0100)
committerJoerg Jaspert <joerg@debian.org>
Fri, 9 Dec 2011 20:58:16 +0000 (21:58 +0100)
besides reindent/reformat fix/change the following:

* dont use `` but $() for subshell calls.
* remove vncdisplay option from menu
* merge start/shutdown/reboot/destroy actions in the case into one,
  as they all do the exact same thing.

Signed-off-by: Joerg Jaspert <joerg@debian.org>
kvm-shell

index 671efe7..a08fe5e 100644 (file)
--- a/kvm-shell
+++ b/kvm-shell
@@ -54,40 +54,42 @@ MYEXIT=0
 function select_vm {
 # PARAMETERS: none
 # DESCRIPTION: extract the vms which the current user is allowed to control and display them in a little menu
 function select_vm {
 # PARAMETERS: none
 # DESCRIPTION: extract the vms which the current user is allowed to control and display them in a little menu
-AVAILABLEVMS=`grep $CURRENTUSER $USERSFILE | sed -e "s/$CURRENTUSER\(.*\)/\1/g"`
-MENUITEMS=""
-COUNTER=0
-NEWAVAILABLEVMS=""
-for i in $AVAILABLEVMS
-do
+    AVAILABLEVMS=$(egrep "^$CURRENTUSER " $USERSFILE | sed -e "s/$CURRENTUSER\(.*\)/\1/g")
+    MENUITEMS=""
+    COUNTER=0
+    NEWAVAILABLEVMS=""
+    for i in $AVAILABLEVMS; do
+       set +e
         $SUDO $VIRSH domstate $i 2>/dev/null
         $SUDO $VIRSH domstate $i 2>/dev/null
-        if [ "$?" = "0" ]; then
-                NEWAVAILABLEVMS="${NEWAVAILABLEVMS} ${i}"
-                COUNTER=$((COUNTER+1))
-                STATE=`$SUDO $VIRSH domstate $i|grep -v "^$" | sed -e "s/ /_/g"`
-                MENUITEMS="$MENUITEMS $i $STATE"
+       foo=$?
+       set -e
+        if [ "$foo" = "0" ]; then
+            NEWAVAILABLEVMS="${NEWAVAILABLEVMS} ${i}"
+            COUNTER=$((COUNTER+1))
+            STATE=`$SUDO $VIRSH domstate $i|grep -v "^$" | sed -e "s/ /_/g"`
+            MENUITEMS="$MENUITEMS $i $STATE"
         fi
         fi
-done
-AVAILABLEVMS=$NEWAVAILABLEVMS
-[ $DEBUG -eq 1 ] && echo $MENUITEMS
-selectedvm=`dialog --stdout --title "User $CURRENTUSER - please select your VM to manage" --menu "Available VMs:" 15 55 $COUNTER $MENUITEMS`
-ret=$?
-case $ret in
-  0)
-        [ $DEBUG -eq 1 ] && echo "selected: $selectedvm"
-        while [ $MYEXIT -ne 2 ];
-        do
+    done
+    AVAILABLEVMS=$NEWAVAILABLEVMS
+    [ $DEBUG -eq 1 ] && echo $MENUITEMS
+    selectedvm=`dialog --stdout --title "User $CURRENTUSER - please select your VM to manage" --menu "Available VMs:" 15 55 $COUNTER $MENUITEMS`
+    ret=$?
+    case $ret in
+       0)
+            [ $DEBUG -eq 1 ] && echo "selected: $selectedvm"
+            while [ $MYEXIT -ne 2 ];
+            do
                 select_action
                 select_action
-        done
-        MYEXIT=0
-        ;;
-  1)
-        [ $DEBUG -eq 1 ] && echo "You pressed cancel."
-        MYEXIT=1;;
-  255)
-        [ $DEBUG -eq 1 ] && echo "You hit Esc."
-        MYEXIT=1;;
-esac
+            done
+            MYEXIT=0
+            ;;
+       1)
+            [ $DEBUG -eq 1 ] && echo "You pressed cancel."
+            MYEXIT=1;;
+       255)
+            [ $DEBUG -eq 1 ] && echo "You hit Esc."
+            MYEXIT=1;;
+    esac
 }
 
 
 }
 
 
@@ -104,54 +106,43 @@ function select_action {
 #   - reboot
 #   - destroy
 ### TODO: Check if $selectedvm is really a valid vm (should be ok, but still ...)
 #   - reboot
 #   - destroy
 ### TODO: Check if $selectedvm is really a valid vm (should be ok, but still ...)
-STATE=`$SUDO $VIRSH domstate $selectedvm|grep -v "^$" | sed -e "s/ /_/g"`
-selectedaction=`dialog --stdout --title "User $CURRENTUSER - please select action for VM $selectedvm" --menu "Available actions for VM $selectedvm ($STATE):" 15 55 5  "dominfo" "" "vncdisplay" "" "start" "" "shutdown" "" "reboot" "" "destroy" ""`
-ret=$?
-case $ret in
-  0)
-        echo "$SUDO $VIRSH $selectedaction $selectedvm"
-        case $selectedaction in
-          dominfo)
-                $SUDO $VIRSH $selectedaction $selectedvm
-                ;;
-          vncdisplay)
-                VNCDSP=`$SUDO $VIRSH vncdisplay $selectedvm | grep -v "^$" | sed -e "s/://g"`
-                VNCDSP=$((VNCBASEPORT+VNCDSP))
-                echo "VNC port: $VNCDSP"
-                ;;
-          start)
-                $SUDO $VIRSH $selectedaction $selectedvm
-                ;;
-          shutdown)
-                $SUDO $VIRSH $selectedaction $selectedvm
-                ;;
-          reboot)
-                $SUDO $VIRSH $selectedaction $selectedvm
-                ;;
-          destroy)
-                $SUDO $VIRSH $selectedaction $selectedvm
-                ;;
-        esac
-        sleep 1
-        [ "$selectedaction" != "dominfo" ] && $SUDO $VIRSH dominfo $selectedvm
-        read -p "[Hit Return]" x
-        ;;
-  1)
-        [ $DEBUG -eq 1 ] && echo "You pressed cancel."
-        MYEXIT=2
-        ;;
-  255)
-        [ $DEBUG -eq 1 ] && echo "You hit Esc."
-        MYEXIT=2
-        ;;
-esac
+    STATE=`$SUDO $VIRSH domstate $selectedvm|grep -v "^$" | sed -e "s/ /_/g"`
+    selectedaction=`dialog --stdout --title "User $CURRENTUSER - please select action for VM $selectedvm" --menu "Available actions for VM $selectedvm ($STATE):" 15 55 5  "dominfo" "" "console" "" "start" "" "shutdown" "" "reboot" "" "destroy" ""`
+    ret=$?
+    clear
+    case $ret in
+       0)
+            #echo "$SUDO $VIRSH $selectedaction $selectedvm"
+            case $selectedaction in
+               dominfo|console|start|shutdown|reboot|destroy)
+                   set +e
+                    $SUDO $VIRSH $selectedaction $selectedvm
+                   set -e
+                    ;;
+               vncdisplay)
+                    VNCDSP=`$SUDO $VIRSH vncdisplay $selectedvm | grep -v "^$" | sed -e "s/://g"`
+                    VNCDSP=$((VNCBASEPORT+VNCDSP))
+                    echo "VNC port: $VNCDSP"
+                    ;;
+            esac
+            sleep 1
+            read -p "[Hit Return]" x
+            ;;
+       1)
+            [ $DEBUG -eq 1 ] && echo "You pressed cancel."
+            MYEXIT=2
+            ;;
+       255)
+            [ $DEBUG -eq 1 ] && echo "You hit Esc."
+            MYEXIT=2
+            ;;
+    esac
 }
 
 
 # main loop
 }
 
 
 # main loop
-while [ $MYEXIT -ne 1 ];
-do
-        select_vm
+while [ $MYEXIT -ne 1 ]; do
+    select_vm
 done
 
 exit 0
 done
 
 exit 0