cleanup docs, getopt arg parsing
[automated-distro-installer] / fai-revm
index b10d6e651895f4baa93a576ab26aa93516bd01b1..d8833ab4b01e2e920f6f31bc2793a64c56f0b763 100755 (executable)
--- a/fai-revm
+++ b/fai-revm
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-# Note, sometimes shutting down the existing demohost vm
-# fails. Just run again if that happens.
 
-# Deploy fai configuration to faiserver,
-# then start a virtual machine to test the config.
 
 cleanup() { :; }
 set -eE -o pipefail
@@ -28,8 +24,43 @@ script_dir=$(dirname $(readlink -f "$BASH_SOURCE"))
 
 e() { echo "$*"; "$@"; }
 
-# I had this set false as default before, can't remember why. oh well.
+
+usage() {
+    cat <<EOF
+# Usage: ${0##*/} [OPTIONS]
+Setup fai or arch pxe (depending on $0 name)
+then start a virtual machine to test the config
+
+Note, sometimes shutting down the existing demohost vm
+fails. Just run again if that happens.
+
+-r         Do not reboot.
+-n         Create new qcow2(s) for vm
+-h|--help  Print help and exit.
+
+Note: Uses GNU getopt options parsing style
+EOF
+    exit $1
+}
+
+
+# not sure why I wanted to have this option before. oh well.
 redeploy=true
+
+reboot=true
+temp=$(getopt -l opt o "$@") || usage 1
+eval set -- "$temp"
+while true; do
+    case $1 in
+        -n) new_disk=true; shift ;;
+        -r) reboot=false; shift ;;
+        -h|--help) usage ;;
+        --) shift; break ;;
+        *) echo "$0: Internal error!" ; exit 1 ;;
+    esac
+done
+
+
 if [[ $1 == -r ]]; then
     redeploy=false
 fi
@@ -52,9 +83,6 @@ is_arch_revm() {
     [[ ${0##*/} == arch-revm ]]
 }
 
-new_disk=false
-[[ ! $1 ]] || new_disk=true
-
 cleanup() { ./pxe-server :; }
 if is_arch_revm; then
     ./pxe-server arch