# 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
--c CERT_DIR Default is /p/c/machine_specific/\$HOSTNAME/webservercerts
--h|--help Print help and exit
--r DocumentRoot
--- Subsequent arguments are never treated as options
+-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.
+-r DocumentRoot
+-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
}
##### begin command line parsing ########
-cert_dir=/p/c/machine_specific/$HOSTNAME/webservercerts
+cert_dir="$ACME_TINY_WRAPPER_CERT_DIR"
+if [[ ! $cert_dir ]]; then
+ cert_dir=$HOME/webservercerts
+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[@]}"