+usage() {
+ cat <<EOF
+Usage: ${0##*/} [OPTIONS] [DOMAIN_NAME]
+Setup dependencies, apache, and gitweb. Then call build.rb.
+
+Default DOMAIN_NAME is iankelling.org. Domain is expected to resolve
+so we can get a let's encrypt cert.
+
+-p PORT Apache port, default is *:443.
+-h|--help Print help and exit.
+
+Note: Uses GNU getopt options parsing style
+EOF
+ exit $1
+}
+
+##### begin command line parsing ########
+
+port="*:443"
+temp=$(getopt -l help, p:h "$@") || usage 1
+eval set -- "$temp"
+while true; do
+ case $1 in
+ -p) port=$2; shift 2 ;;
+ -h|--help) usage ;;
+ --) shift; break ;;
+ *) echo "$0: Internal error! unexpected args: $*" ; exit 1 ;;
+ esac
+done
+
+##### end command line parsing ########
+
+x="$(readlink -f "$BASH_SOURCE")"
+script_dir=${x%/*}
+cd $script_dir