# See the License for the specific language governing permissions and
# limitations under the License.
-# run as root.
[[ $EUID == 0 ]] || exec sudo -E "$BASH_SOURCE" "$@"
set -eE -o pipefail
EXTRA_SETTINGS_FILE can be - for stdin
-p PORT
--i Insecure, no ssl
+-i Insecure, no ssl
-c CERT_DIR In priority: this arg, $ACME_TINY_WRAPPER_CERT_DIR,
$HOME/webservercerts, if the other options aren't set.
--h|--help Print help and exit
-r DocumentRoot
--- Subsequent arguments are never treated as options
+-h|--help Print help and exit
-Note: options and non-options can be in any order.
+Note: Uses GNU getopt options parsing style
EOF
exit $1
}
fi
ssl=true
extra_settings=
-args=()
port="*:443"
-while [[ $1 ]]; do
+temp=$(getopt -l help ic:p:r:h "$@") || usage 1
+eval set -- "$temp"
+while true; do
case $1 in
- -i) ssl=false; shift ;; # i for insecure
+ -i) ssl=false; shift ;;
-c) cert_dir="$2"; shift 2 ;;
-p) port="$2"; shift 2 ;;
-r) root="$2"; shift 2 ;;
--) shift; break ;;
- -?*|-h|--help) usage ;;
- *) args+=("$1"); shift ;;
+ -h|--help) usage ;;
+ *) echo "$0: Internal error!" ; exit 1 ;;
esac
done
-args+=("$@")
-if (( ${#args[@]} == 2 )); then
+if (( ${#@} == 2 )); then
read extra_settings h <<<"${args[@]}"
else
read h <<<"${args[@]}"