#! /bin/bash # make sure the install script is started here OURNAME=install.sh INSTALLDIR=`pwd` PUBLIC_IP=`curl -s https://api.ipify.org` source "$INSTALLDIR/00_install_global_functions_variables.sh" args=("$@") # echo $# arguments passed # echo ${args[0]} ${args[1]} ${args[2]} if [ "$#" -gt "0" ] then # foo/bar -> bar MAILDOMAIN=${args[0]} HOSTNAME=${args[1]:-$MAILDOMAIN} echo -e "DOMAINNAME: ${GREEN}$MAILDOMAIN${NC}, HOSTNAME: ${GREEN}$HOSTNAME${NC}" else echo -e "we got ${RED}ZERO${NC} arguments, so here is the manual:" fun_print_help exit fi if [[ $EUID -ne 0 ]]; then # redirect stdout(1) to stderr(2) # (&2, & means it is a filedescriptor and not a file named "2") echo -e "${RED}ERROR:${NC}This script must be run as root" 1>&2 echo -e "Execute ${GREEN}sudo bash${NC} , ${ORANGE}sudo su${NC} or ${ORANGE}sudo sh${NC}" exit 1 fi # source is for executing in the current shell, and not in a subset. # defined variables persists across files declare -a arr=( "01_install_commits.sh" "02_install_prerequisites.sh" "03_install_check_running_services.sh" "04_install_import_keys.sh" "05_install_packages.sh" "06_install_enable_services.sh" "07_install_wildduck.sh" "08_install_haraka.sh" "09_install_zone_mta.sh" "10_install_wildduck_webmail.sh" "11_install_nginx.sh" "12_install_ufw_rules.sh" "13_install_ssl_certs.sh" "14_install_start_services.sh" "15_install_deploy.sh" ) for i in "${arr[@]}" do source "$INSTALLDIR/$i" done