Parsing commandline arguments
This commit is contained in:
parent
baf2a204fb
commit
e723166fa2
316
src/freedombone
316
src/freedombone
@ -79,6 +79,8 @@
|
||||
#
|
||||
# Note that there are no spaces around the equals.
|
||||
|
||||
NO_OF_ARGS=$#
|
||||
|
||||
DOMAIN_NAME=
|
||||
MY_USERNAME=
|
||||
FREEDNS_SUBDOMAIN_CODE=
|
||||
@ -372,170 +374,170 @@ function show_help {
|
||||
echo "'$VARIANT_CHAT', '$VARIANT_SOCIAL', '$VARIANT_MEDIA', '$VARIANT_TOR_DONGLE' or '$VARIANT_WRITER'."
|
||||
echo "If you wish to install everything except email then use the '$VARIANT_NONMAILBOX' variaint."
|
||||
echo ''
|
||||
exit 0
|
||||
}
|
||||
|
||||
# Oddly it appears that command line parsing cannot be done inside of a function
|
||||
while [[ $# > 1 ]]
|
||||
do
|
||||
key="$1"
|
||||
|
||||
case $key in
|
||||
-h|--help)
|
||||
show_help
|
||||
;;
|
||||
# username within /home
|
||||
-u|--user)
|
||||
shift
|
||||
MY_USERNAME="$1"
|
||||
;;
|
||||
# microblog domain name
|
||||
--microblogdomain)
|
||||
shift
|
||||
MICROBLOG_DOMAIN_NAME="$1"
|
||||
;;
|
||||
# microblog domain code (freedns)
|
||||
--microblogcode)
|
||||
shift
|
||||
MICROBLOG_FREEDNS_SUBDOMAIN_CODE="$1"
|
||||
;;
|
||||
# wiki domain name
|
||||
--wikidomain)
|
||||
shift
|
||||
WIKI_DOMAIN_NAME="$1"
|
||||
;;
|
||||
# wiki domain code (freedns)
|
||||
--wikicode)
|
||||
shift
|
||||
WIKI_FREEDNS_SUBDOMAIN_CODE="$1"
|
||||
;;
|
||||
# blog domain name
|
||||
--blogdomain)
|
||||
shift
|
||||
FULLBLOG_DOMAIN_NAME="$1"
|
||||
;;
|
||||
# blog domain code (freedns)
|
||||
--blogcode)
|
||||
shift
|
||||
FULLBLOG_FREEDNS_SUBDOMAIN_CODE="$1"
|
||||
;;
|
||||
# owncloud domain name
|
||||
--ownclouddomain)
|
||||
shift
|
||||
OWNCLOUD_DOMAIN_NAME="$1"
|
||||
;;
|
||||
# owncloud domain code (freedns)
|
||||
--owncloudcode)
|
||||
shift
|
||||
OWNCLOUD_FREEDNS_SUBDOMAIN_CODE="$1"
|
||||
;;
|
||||
# redmatrix domain name
|
||||
--redmatrixdomain)
|
||||
shift
|
||||
REDMATRIX_DOMAIN_NAME="$1"
|
||||
;;
|
||||
# redmatrix domain code (freedns)
|
||||
--redmatrixcode)
|
||||
shift
|
||||
REDMATRIX_FREEDNS_SUBDOMAIN_CODE="$1"
|
||||
;;
|
||||
# default domain name
|
||||
-d|--domain)
|
||||
shift
|
||||
DOMAIN_NAME="$1"
|
||||
;;
|
||||
# default domain code (freedns)
|
||||
-c|--code)
|
||||
shift
|
||||
FREEDNS_SUBDOMAIN_CODE="$1"
|
||||
;;
|
||||
# The type of system
|
||||
-s|--system)
|
||||
shift
|
||||
SYSTEM_TYPE="$1"
|
||||
;;
|
||||
# The dynamic DNS provider
|
||||
--ddns)
|
||||
shift
|
||||
DDNS_PROVIDER="$1"
|
||||
;;
|
||||
# Username for the synamic DNS provider
|
||||
--ddnsuser)
|
||||
shift
|
||||
DDNS_USERNAME="$1"
|
||||
;;
|
||||
# Password for the synamic DNS provider
|
||||
--ddnspass)
|
||||
shift
|
||||
DDNS_PASSWORD="$1"
|
||||
;;
|
||||
# Whether this installation is on a Beaglebone Black
|
||||
--bbb)
|
||||
INSTALLING_ON_BBB="yes"
|
||||
;;
|
||||
# Domain name to use as a TLS time source
|
||||
-t|--time)
|
||||
shift
|
||||
TLS_TIME_SOURCE1="$1"
|
||||
;;
|
||||
# Static IP address for the system
|
||||
--ip)
|
||||
shift
|
||||
LOCAL_NETWORK_STATIC_IP_ADDRESS=$1
|
||||
;;
|
||||
# IP address for the internet router
|
||||
--iprouter)
|
||||
shift
|
||||
ROUTER_IP_ADDRESS=$1
|
||||
;;
|
||||
# ssh port
|
||||
--ssh)
|
||||
shift
|
||||
SSH_PORT=$1
|
||||
;;
|
||||
# public mailing list name
|
||||
--list)
|
||||
shift
|
||||
PUBLIC_MAILING_LIST="$1"
|
||||
;;
|
||||
# Number of CPU cores
|
||||
--cores)
|
||||
shift
|
||||
CPU_CORES=$1
|
||||
;;
|
||||
# my name
|
||||
--name)
|
||||
shift
|
||||
MY_NAME="$1"
|
||||
;;
|
||||
# my email address
|
||||
--email)
|
||||
shift
|
||||
MY_EMAIL_ADDRESS="$1"
|
||||
;;
|
||||
# USB drive
|
||||
--usb)
|
||||
shift
|
||||
USB_DRIVE=$1
|
||||
;;
|
||||
# Enable CJDNS
|
||||
--cjdns)
|
||||
shift
|
||||
ENABLE_CJDNS="yes"
|
||||
;;
|
||||
*)
|
||||
# unknown option
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
function parse_args {
|
||||
if [ ! $1 ]; then
|
||||
if [[ $NO_OF_ARGS == 0 ]]; then
|
||||
show_help
|
||||
exit 0
|
||||
fi
|
||||
|
||||
while [[ $# > 1 ]]
|
||||
do
|
||||
key="$1"
|
||||
|
||||
case $key in
|
||||
-h|--help)
|
||||
show_help
|
||||
exit 0
|
||||
;;
|
||||
# username within /home
|
||||
-u|--user)
|
||||
MY_USERNAME="$1"
|
||||
shift
|
||||
;;
|
||||
# microblog domain name
|
||||
--microblogdomain)
|
||||
MICROBLOG_DOMAIN_NAME="$1"
|
||||
shift
|
||||
;;
|
||||
# microblog domain code (freedns)
|
||||
--microblogcode)
|
||||
MICROBLOG_FREEDNS_SUBDOMAIN_CODE="$1"
|
||||
shift
|
||||
;;
|
||||
# wiki domain name
|
||||
--wikidomain)
|
||||
WIKI_DOMAIN_NAME="$1"
|
||||
shift
|
||||
;;
|
||||
# wiki domain code (freedns)
|
||||
--wikicode)
|
||||
WIKI_FREEDNS_SUBDOMAIN_CODE="$1"
|
||||
shift
|
||||
;;
|
||||
# blog domain name
|
||||
--blogdomain)
|
||||
FULLBLOG_DOMAIN_NAME="$1"
|
||||
shift
|
||||
;;
|
||||
# blog domain code (freedns)
|
||||
--blogcode)
|
||||
FULLBLOG_FREEDNS_SUBDOMAIN_CODE="$1"
|
||||
shift
|
||||
;;
|
||||
# owncloud domain name
|
||||
--ownclouddomain)
|
||||
OWNCLOUD_DOMAIN_NAME="$1"
|
||||
shift
|
||||
;;
|
||||
# owncloud domain code (freedns)
|
||||
--owncloudcode)
|
||||
OWNCLOUD_FREEDNS_SUBDOMAIN_CODE="$1"
|
||||
shift
|
||||
;;
|
||||
# redmatrix domain name
|
||||
--redmatrixdomain)
|
||||
REDMATRIX_DOMAIN_NAME="$1"
|
||||
shift
|
||||
;;
|
||||
# redmatrix domain code (freedns)
|
||||
--redmatrixcode)
|
||||
REDMATRIX_FREEDNS_SUBDOMAIN_CODE="$1"
|
||||
shift
|
||||
;;
|
||||
# default domain name
|
||||
-d|--domain)
|
||||
DOMAIN_NAME="$1"
|
||||
shift
|
||||
;;
|
||||
# default domain code (freedns)
|
||||
-c|--code)
|
||||
FREEDNS_SUBDOMAIN_CODE="$1"
|
||||
shift
|
||||
;;
|
||||
# The type of system
|
||||
-s|--system)
|
||||
SYSTEM_TYPE="$1"
|
||||
shift
|
||||
;;
|
||||
# The dynamic DNS provider
|
||||
--ddns)
|
||||
DDNS_PROVIDER="$1"
|
||||
shift
|
||||
;;
|
||||
# Username for the synamic DNS provider
|
||||
--ddnsuser)
|
||||
DDNS_USERNAME="$1"
|
||||
shift
|
||||
;;
|
||||
# Password for the synamic DNS provider
|
||||
--ddnspass)
|
||||
DDNS_PASSWORD="$1"
|
||||
shift
|
||||
;;
|
||||
# Whether this installation is on a Beaglebone Black
|
||||
--bbb)
|
||||
INSTALLING_ON_BBB="$1"
|
||||
shift
|
||||
;;
|
||||
# Domain name to use as a TLS time source
|
||||
-t|--time)
|
||||
TLS_TIME_SOURCE1="$1"
|
||||
shift
|
||||
;;
|
||||
# Static IP address for the system
|
||||
--ip)
|
||||
LOCAL_NETWORK_STATIC_IP_ADDRESS=$1
|
||||
shift
|
||||
;;
|
||||
# IP address for the internet router
|
||||
--iprouter)
|
||||
ROUTER_IP_ADDRESS=$1
|
||||
shift
|
||||
;;
|
||||
# ssh port
|
||||
--ssh)
|
||||
SSH_PORT=$1
|
||||
shift
|
||||
;;
|
||||
# public mailing list name
|
||||
--list)
|
||||
PUBLIC_MAILING_LIST="$1"
|
||||
shift
|
||||
;;
|
||||
# Number of CPU cores
|
||||
--cores)
|
||||
CPU_CORES=$1
|
||||
shift
|
||||
;;
|
||||
# my name
|
||||
--name)
|
||||
MY_NAME="$1"
|
||||
shift
|
||||
;;
|
||||
# my email address
|
||||
--email)
|
||||
MY_EMAIL_ADDRESS="$1"
|
||||
shift
|
||||
;;
|
||||
# USB drive
|
||||
--usb)
|
||||
USB_DRIVE=$1
|
||||
shift
|
||||
;;
|
||||
# Enable CJDNS
|
||||
--cjdns)
|
||||
ENABLE_CJDNS="yes"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
# unknown option
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [ ! -d /home/$MY_USERNAME ]; then
|
||||
echo "There is no user '$MY_USERNAME' on the system. Use 'adduser $MY_USERNAME' to create the user."
|
||||
exit 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user