add command params
This commit is contained in:
parent
94dea99a5f
commit
2bc84967d4
136
bin/vhost-add
136
bin/vhost-add
|
@ -12,33 +12,105 @@ cd "$SCRIPT_PATH/../"
|
||||||
|
|
||||||
. ./etc/config
|
. ./etc/config
|
||||||
|
|
||||||
|
error() {
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
printf "%s\\n" "$1" >/dev/stderr
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
exit_if_empty() {
|
exit_if_empty() {
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
if [ -n "$2" ]; then
|
error "$2"
|
||||||
printf "%s\\n" "$2"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
USAGE:
|
||||||
|
$0 [options]
|
||||||
|
|
||||||
|
OPTIONS:
|
||||||
|
-d The domain name
|
||||||
|
-a Aliase(s)
|
||||||
|
-m value Enable *http* or *https*
|
||||||
|
-r Force redirection of http to https
|
||||||
|
-p value Enable PHP with the given version (eg: 8.0)
|
||||||
|
-u value Username in the system
|
||||||
|
-i Enable script interactivity
|
||||||
|
-h Show this help
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#######################
|
||||||
|
# Injection of params #
|
||||||
|
#######################
|
||||||
|
|
||||||
|
ERROR=0
|
||||||
|
INTERACTIVE=1
|
||||||
|
SYSTEM_USER_USERNAME="web"
|
||||||
|
PHP_ENABLED="yes"
|
||||||
|
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
INTERACTIVE=0
|
||||||
|
|
||||||
|
WEB_HTTP="no"
|
||||||
|
WEB_HTTPS="no"
|
||||||
|
WEB_HTTPS_FORCE="no"
|
||||||
|
PHP_ENABLED="no"
|
||||||
|
fi
|
||||||
|
|
||||||
|
while getopts "hid:a:u:p:m:r" option; do
|
||||||
|
case "$option" in
|
||||||
|
d) DOMAIN="$OPTARG";;
|
||||||
|
a) DOMAIN_ALIASES="$OPTARG";;
|
||||||
|
u) SYSTEM_USER_USERNAME="web$(echo $OPTARG | sed 's/^web//')";;
|
||||||
|
p)
|
||||||
|
PHP_VERSION="$OPTARG"
|
||||||
|
PHP_ENABLED="yes"
|
||||||
|
;;
|
||||||
|
r) WEB_HTTPS_FORCE="yes";;
|
||||||
|
m)
|
||||||
|
if [ "$OPTARG" = "http" ]; then
|
||||||
|
WEB_HTTP="yes"
|
||||||
|
elif [ "$OPTARG" = "https" ]; then
|
||||||
|
WEB_HTTPS="yes"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
i) INTERACTIVE=1;;
|
||||||
|
h) usage; exit 0;;
|
||||||
|
:) ERROR=1;;
|
||||||
|
?) ERROR=1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $ERROR -eq 1 ]; then
|
||||||
|
error "Invalid parameter\\n$(usage)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export INTERACTIVE
|
||||||
|
|
||||||
##########################
|
##########################
|
||||||
# Collect of information #
|
# Collect of information #
|
||||||
##########################
|
##########################
|
||||||
|
|
||||||
TITLE="VHOST-MANAGER - NEW WEBSITE"
|
TITLE="VHOST-MANAGER - NEW WEBSITE"
|
||||||
|
|
||||||
DOMAIN="$(form_input -t "$TITLE" -l "Domain" -r)"
|
DOMAIN="$(form_input -t "$TITLE" -l "Domain" -r -d "$DOMAIN")"
|
||||||
|
|
||||||
exit_if_empty "$DOMAIN" "Aborded! (DOMAIN_EMPTY)"
|
exit_if_empty "$DOMAIN" "Aborded! (DOMAIN_EMPTY)"
|
||||||
|
|
||||||
DOMAIN_ALIASES="$(form_input -t "$TITLE" -l "Aliase(s)")"
|
DOMAIN_ALIASES="$(form_input -t "$TITLE" -l "Aliase(s)" -d "$DOMAIN_ALIASES")"
|
||||||
|
|
||||||
WEB_HTTP="$(form_yes_no -t "$TITLE" -l "Support of HTTP (recommended)")"
|
WEB_HTTP="$(form_yes_no -t "$TITLE" -l "Support of HTTP (recommended)" -d "$WEB_HTTP")"
|
||||||
WEB_HTTPS="$(form_yes_no -t "$TITLE" -l "Support of HTTPS (recommended)")"
|
WEB_HTTPS="$(form_yes_no -t "$TITLE" -l "Support of HTTPS (recommended)" -d "$WEB_HTTPS")"
|
||||||
|
|
||||||
if [ "$WEB_HTTP" = "yes" ] && [ "$WEB_HTTPS" = "yes" ]; then
|
if [ "$WEB_HTTP" = "yes" ] && [ "$WEB_HTTPS" = "yes" ]; then
|
||||||
WEB_HTTPS_FORCE="$(form_yes_no -t "$TITLE" -l "Redirect HTTP to HTTPS (recommended)")"
|
WEB_HTTPS_FORCE="$(form_yes_no -t "$TITLE" -l "Redirect HTTP to HTTPS (recommended)" -d "$WEB_HTTPS_FORCE")"
|
||||||
else
|
else
|
||||||
WEB_HTTPS_FORCE="no"
|
WEB_HTTPS_FORCE="no"
|
||||||
fi
|
fi
|
||||||
|
@ -46,17 +118,23 @@ fi
|
||||||
DOCUMENT_ROOT="$(form_input -t "$TITLE" -l "Document root\n$WEB_ROOT_PATH/$DOMAIN/" -d "web/")"
|
DOCUMENT_ROOT="$(form_input -t "$TITLE" -l "Document root\n$WEB_ROOT_PATH/$DOMAIN/" -d "web/")"
|
||||||
DOCUMENT_ROOT="$WEB_ROOT_PATH/$DOMAIN/$DOCUMENT_ROOT"
|
DOCUMENT_ROOT="$WEB_ROOT_PATH/$DOMAIN/$DOCUMENT_ROOT"
|
||||||
|
|
||||||
PHP_ENABLED="$(form_yes_no -t "$TITLE" -l "Support of PHP")"
|
PHP_ENABLED="$(form_yes_no -t "$TITLE" -l "Support of PHP" -d "$PHP_ENABLED")"
|
||||||
|
|
||||||
if [ "$PHP_ENABLED" = "yes" ]; then
|
if [ "$PHP_ENABLED" = "yes" ]; then
|
||||||
COMMAND="form_choices -t \"$TITLE\" -l \"Version of PHP\""
|
COMMAND="form_choices -t \"$TITLE\""
|
||||||
|
|
||||||
for PHP_VERSION in $PHP_VERSIONS; do
|
if [ -n "$PHP_VERSION" ]; then
|
||||||
PHP_VERSION_NORMALISED="$(echo "$PHP_VERSION" | tr -dc 1234567890)"
|
COMMAND="$COMMAND -d \"$PHP_VERSION\""
|
||||||
|
fi
|
||||||
|
|
||||||
eval "PHP_LABEL=\$PHP_${PHP_VERSION_NORMALISED}_LABEL"
|
COMMAND="$COMMAND -l \"Version of PHP\""
|
||||||
|
|
||||||
COMMAND="$COMMAND \"$PHP_VERSION\" \"$PHP_LABEL\""
|
for VERSION in $PHP_VERSIONS; do
|
||||||
|
VERSION_NORMALISED="$(echo "$VERSION" | tr -dc 1234567890)"
|
||||||
|
|
||||||
|
eval "LABEL=\$PHP_${VERSION_NORMALISED}_LABEL"
|
||||||
|
|
||||||
|
COMMAND="$COMMAND \"$VERSION\" \"$LABEL\""
|
||||||
done
|
done
|
||||||
|
|
||||||
PHP_VERSION="$(eval "$COMMAND")"
|
PHP_VERSION="$(eval "$COMMAND")"
|
||||||
|
@ -66,7 +144,7 @@ fi
|
||||||
|
|
||||||
USER_PASSWORD="$(tr -dc "0123456789!@#$%()[]*@<>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" < /dev/urandom | head -c 20)"
|
USER_PASSWORD="$(tr -dc "0123456789!@#$%()[]*@<>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" < /dev/urandom | head -c 20)"
|
||||||
|
|
||||||
SYSTEM_USER_USERNAME="$(form_input -t "$TITLE" -l "System username" -d "web" -r)"
|
SYSTEM_USER_USERNAME="$(form_input -t "$TITLE" -l "System username" -d "$SYSTEM_USER_USERNAME" -r)"
|
||||||
|
|
||||||
SYSTEM_USER_PASSWORD=$(
|
SYSTEM_USER_PASSWORD=$(
|
||||||
PASSWORD="$USER_PASSWORD"
|
PASSWORD="$USER_PASSWORD"
|
||||||
|
@ -101,14 +179,18 @@ export WEB_HTTPS_DEFAULT_CERT_PRIVKEY
|
||||||
export WEB_HTTPS_DEFAULT_CERT_CHAIN
|
export WEB_HTTPS_DEFAULT_CERT_CHAIN
|
||||||
export WEB_BIND_ADDRESS
|
export WEB_BIND_ADDRESS
|
||||||
|
|
||||||
TMP_FILE="/tmp/vhost-add-$(tr -dc "qwertQWERTasdfgASDFGzxcvbZXCVB" < /dev/urandom | head -c 16)"
|
if [ $INTERACTIVE -eq 0 ]; then
|
||||||
touch "$TMP_FILE"
|
CONTINUE="yes"
|
||||||
chmod 600 "$TMP_FILE"
|
else
|
||||||
template summary > "$TMP_FILE"
|
TMP_FILE="/tmp/vhost-add-$(tr -dc "qwertQWERTasdfgASDFGzxcvbZXCVB" < /dev/urandom | head -c 16)"
|
||||||
whiptail --textbox "$TMP_FILE" --title "$TITLE - PREVIEW" 25 80
|
touch "$TMP_FILE"
|
||||||
rm "$TMP_FILE"
|
chmod 600 "$TMP_FILE"
|
||||||
|
template summary > "$TMP_FILE"
|
||||||
|
whiptail --textbox "$TMP_FILE" --title "$TITLE - PREVIEW" 25 80
|
||||||
|
rm "$TMP_FILE"
|
||||||
|
|
||||||
CONTINUE="$(form_yes_no -t "$TITLE" -l "Do you confirm?" -n)"
|
CONTINUE="$(form_yes_no -t "$TITLE" -l "Do you confirm?" -n)"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$CONTINUE" = "no" ]; then
|
if [ "$CONTINUE" = "no" ]; then
|
||||||
printf "Aborded!\\n"
|
printf "Aborded!\\n"
|
||||||
|
@ -179,6 +261,10 @@ TMP_FILE="/tmp/vhost-add-$(tr -dc "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS
|
||||||
touch "$TMP_FILE"
|
touch "$TMP_FILE"
|
||||||
chmod 600 "$TMP_FILE"
|
chmod 600 "$TMP_FILE"
|
||||||
template result > "$TMP_FILE"
|
template result > "$TMP_FILE"
|
||||||
whiptail --textbox "$TMP_FILE" --title "$TITLE - FINISH" 25 80
|
|
||||||
|
if [ $INTERACTIVE -eq 1 ]; then
|
||||||
|
whiptail --textbox "$TMP_FILE" --title "$TITLE - FINISH" 25 80
|
||||||
|
fi
|
||||||
|
|
||||||
cat "$TMP_FILE"
|
cat "$TMP_FILE"
|
||||||
rm "$TMP_FILE"
|
rm "$TMP_FILE"
|
||||||
|
|
|
@ -6,6 +6,7 @@ ERROR=0
|
||||||
HEIGHT=25
|
HEIGHT=25
|
||||||
MENU_HEIGHT=16
|
MENU_HEIGHT=16
|
||||||
WIDTH=50
|
WIDTH=50
|
||||||
|
DEFAULT=
|
||||||
|
|
||||||
while getopts "t:l:d:h:w:m:r" option; do
|
while getopts "t:l:d:h:w:m:r" option; do
|
||||||
case "$option" in
|
case "$option" in
|
||||||
|
@ -14,6 +15,10 @@ while getopts "t:l:d:h:w:m:r" option; do
|
||||||
h) HEIGHT="$OPTARG";;
|
h) HEIGHT="$OPTARG";;
|
||||||
m) MENU_HEIGHT="$OPTARG";;
|
m) MENU_HEIGHT="$OPTARG";;
|
||||||
w) WIDTH="$OPTARG";;
|
w) WIDTH="$OPTARG";;
|
||||||
|
d)
|
||||||
|
DEFAULT="$OPTARG"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
:) ERROR=1;;
|
:) ERROR=1;;
|
||||||
?) ERROR=1;;
|
?) ERROR=1;;
|
||||||
esac
|
esac
|
||||||
|
@ -23,6 +28,15 @@ if [ $ERROR -eq 1 ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
shift $((OPTIND-1))
|
if [ $INTERACTIVE -eq 0 ]; then
|
||||||
|
printf "$DEFAULT"
|
||||||
|
else
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
|
||||||
|
if [ -n "$DEFAULT" ]; then
|
||||||
|
DEFAULT="--default-item $DEFAULT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
whiptail --title "$TITLE" --menu "$LABEL" $HEIGHT $WIDTH $MENU_HEIGHT $DEFAULT "$@" 3>&1 1>&2 2>&3
|
||||||
|
fi
|
||||||
|
|
||||||
whiptail --title "$TITLE" --menu "$LABEL" $HEIGHT $WIDTH $MENU_HEIGHT "$@" 3>&1 1>&2 2>&3
|
|
||||||
|
|
|
@ -25,22 +25,26 @@ if [ $ERROR -eq 1 ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
VALUE=
|
if [ $INTERACTIVE -eq 0 ]; then
|
||||||
DO_ASK=1
|
printf "%s" "$DEFAULT"
|
||||||
|
else
|
||||||
|
VALUE=
|
||||||
|
DO_ASK=1
|
||||||
|
|
||||||
while [ $DO_ASK -eq 1 ]; do
|
while [ $DO_ASK -eq 1 ]; do
|
||||||
VALUE="$(whiptail --title "$TITLE" --inputbox "$LABEL" $HEIGHT $WIDTH "$DEFAULT" 3>&1 1>&2 2>&3)"
|
VALUE="$(whiptail --title "$TITLE" --inputbox "$LABEL" $HEIGHT $WIDTH "$DEFAULT" 3>&1 1>&2 2>&3)"
|
||||||
STATUS=$?
|
STATUS=$?
|
||||||
|
|
||||||
if [ $STATUS -eq 0 ]; then
|
if [ $STATUS -eq 0 ]; then
|
||||||
if [ $REQUIRED -eq 1 ] && [ -z "$VALUE" ]; then
|
if [ $REQUIRED -eq 1 ] && [ -z "$VALUE" ]; then
|
||||||
DO_ASK=1
|
DO_ASK=1
|
||||||
|
else
|
||||||
|
DO_ASK=0
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
DO_ASK=0
|
exit $STATUS
|
||||||
fi
|
fi
|
||||||
else
|
done
|
||||||
exit $STATUS
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "$VALUE"
|
printf "%s" "$VALUE"
|
||||||
|
fi
|
||||||
|
|
|
@ -6,6 +6,7 @@ ERROR=0
|
||||||
HEIGHT=8
|
HEIGHT=8
|
||||||
WIDTH=50
|
WIDTH=50
|
||||||
PARAMS=
|
PARAMS=
|
||||||
|
DEFAULT=
|
||||||
|
|
||||||
while getopts "t:l:d:h:w:rn" option; do
|
while getopts "t:l:d:h:w:rn" option; do
|
||||||
case "$option" in
|
case "$option" in
|
||||||
|
@ -14,6 +15,16 @@ while getopts "t:l:d:h:w:rn" option; do
|
||||||
h) HEIGHT="$OPTARG";;
|
h) HEIGHT="$OPTARG";;
|
||||||
w) WIDTH="$OPTARG";;
|
w) WIDTH="$OPTARG";;
|
||||||
n) PARAMS="$PARAMS --defaultno";;
|
n) PARAMS="$PARAMS --defaultno";;
|
||||||
|
d)
|
||||||
|
if [ -n "$OPTARG" ]; then
|
||||||
|
if [ "$OPTARG" = "no" ]; then
|
||||||
|
PARAMS="$PARAMS --defaultno"
|
||||||
|
DEFAULT="no"
|
||||||
|
elif [ "$OPTARG" = "yes" ]; then
|
||||||
|
DEFAULT="yes"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
:) ERROR=1;;
|
:) ERROR=1;;
|
||||||
?) ERROR=1;;
|
?) ERROR=1;;
|
||||||
esac
|
esac
|
||||||
|
@ -23,8 +34,12 @@ if [ $ERROR -eq 1 ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (whiptail --title "$TITLE" --yesno "$LABEL" $PARAMS $HEIGHT $WIDTH 3>&1 1>&2 2>&3) then
|
if [ $INTERACTIVE -eq 0 ]; then
|
||||||
printf "yes"
|
printf "$DEFAULT"
|
||||||
else
|
else
|
||||||
printf "no"
|
if (whiptail --title "$TITLE" --yesno "$LABEL" $PARAMS $HEIGHT $WIDTH 3>&1 1>&2 2>&3) then
|
||||||
|
printf "yes"
|
||||||
|
else
|
||||||
|
printf "no"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue