X-Git-Url: https://iankelling.org/git/?p=automated-distro-installer;a=blobdiff_plain;f=pxe-server;h=6b6a5765e2571c2550cc64b53ffbbed24bdba2ea;hp=b8e2092214931505d5a050a03cb04af61f3e7439;hb=bf19e9969f50a637c8fabf724eb9e292da472e01;hpb=46edfde8e1fbb4121d5d0661946fc419d042543d diff --git a/pxe-server b/pxe-server index b8e2092..6b6a576 100755 --- a/pxe-server +++ b/pxe-server @@ -34,14 +34,16 @@ One line description TYPE is one of arch, plain, fai, or : for no pxe server. HOST makes the pxe server only for that specific host --h|--help Print help and exit --- Subsequent arguments are never treated as options -r Don't redeploy fai config. -a Wait for 2 dhcp acks, then disable the pxe server after a delay. First ack is for pxe boot, 2nd ack is for os boot. Sometimes on debian, there is a 3rd one shortly after the 2nd. I can't remember exactly why this caused a problem, but I'm hoping the sleep will take care of it. +-h|--help Print help and exit + + +Note: Uses GNU getopt options parsing style EOF exit $1 } @@ -52,19 +54,19 @@ args=() redep=true acks=2 wait=false -while [[ $1 ]]; do +temp=$(getopt -l help hra "$@") || usage 1 +eval set -- "$temp" +while true; do case $1 in - --) shift; break ;; -h|--help) usage ;; -r) redep=false; shift ;; -a) wait=true; shift ;; - *) args+=("$1"); shift ;; + --) shift; break ;; + *) echo "$0: Internal error!" ; exit 1 ;; esac done -args+=("$@") - -read type host <<<"${args[@]}" +read type host <<<"$@" if [[ ! $type ]]; then echo "$0: error: exptected 1 argument of type"