diff --git a/bin/foreign-domain.sh b/bin/foreign-domain.sh deleted file mode 100755 index 2343361..0000000 --- a/bin/foreign-domain.sh +++ /dev/null @@ -1,240 +0,0 @@ -#!/bin/bash - -# list/ajout/supprime/ les domaines extérieurs à kaz.bzh - -KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd) -. "${KAZ_ROOT}/bin/.commonFunctions.sh" -setKazVars - -export PRG="$0" -cd $(dirname $0) - -. "${DOCKERS_ENV}" - -LETS_DIR="/etc/letsencrypt/$([ "${mode}" == "local" ] && echo "local" || echo "live")" - -declare -a availableComposes availableOrga -availableComposes=(${pahekoHost} ${cloudHost} ${dokuwikiHost} ${wordpressHost} ${matterHost} ${castopodHost}) -availableOrga=($(sed -e "s/\(.*\)[ \t]*#.*$/\1/" -e "s/^[ \t]*\(.*\)-orga$/\1/" -e "/^$/d" "${KAZ_CONF_DIR}/container-orga.list")) -availableProxyComposes=($(getList "${KAZ_CONF_DIR}/container-proxy.list")) - -# no more export in .env -export $(set | grep "domain=") - -export CMD="" -export SIMU="" -export CHANGE="" - -usage(){ - echo "Usage: ${PRG} list [friend-domain...]" - echo " ${PRG} [-n] add orga [${pahekoHost} ${cloudHost} ${dokuwikiHost} ${wordpressHost} ${matterHost} ${castopodHost}] [friend-domain...] " - echo " ${PRG} [-n] del [friend-domain...]" - echo " ${PRG} -l" - echo " -l short list" - echo " -renewAll" - echo " -h help" - echo " -n simulation" - exit 1 -} - -export CERT_CFG="${KAZ_CONF_PROXY_DIR}/foreign-certificate" - -createCert () { - ( - fileName="${LETS_DIR}/$1-key.pem" - #[ -f "${fileName}" ] || return - # if [ -f "${fileName}" ]; then - # fileTime=$(stat --format='%Y' "${fileName}") - # current_time=$(date +%s) - # if (( "${fileTime}" > ( "${current_time}" - ( 60 * 60 * 24 * 89 ) ) )); then - # exit - # fi - # fi - printKazMsg "create certificat for $1" - ${SIMU} docker exec -i proxyServ bash -c "/opt/certbot/bin/certbot certonly -n --nginx -d $1" - ) - -} - -for ARG in $@; do - case "${ARG}" in - '-h' | '-help' ) - usage - ;; - '-n' ) - shift - export SIMU="echo" - ;; - '-renewAll') - for i in $("${KAZ_BIN_DIR}/foreign-domain.sh" -l); do - echo "$i" - createCert "$i" |grep failed - done - exit - ;; - '-l') - for compose in ${availableComposes[@]} ; do - grep "server_name" "${KAZ_CONF_PROXY_DIR}/${compose}_kaz_name" | sed -e "s/[ \t]*\([^#]*\)#.*/\1/g" -e "/^$/d" -e "s/.*server_name[ \t]\([^ ;]*\).*/\1/" - done - exit - ;; - 'list'|'add'|'del' ) - shift - CMD="${ARG}" - break - ;; - * ) - usage - ;; - esac -done - -if [ -z "${CMD}" ]; then - echo "Commande missing" - usage -fi - -######################################## -badDomaine () { - [[ -z "$1" ]] && return 0; - [[ ! "$1" =~ ^[-.a-zA-Z0-9]*$ ]] && return 0; - return 1 -} -badOrga () { - [[ -z "$1" ]] && return 0; - [[ ! " ${availableOrga[*]} " =~ " $1 " ]] && return 0 - return 1 -} -badCompose () { - [[ -z "$1" ]] && return 0; - [[ ! " ${availableComposes[*]} " =~ " $1 " ]] && return 0 - return 1 -} - -######################################## -listServ () { - for compose in ${availableComposes[@]} ; do - sed -e "s/[ \t]*\([^#]*\)#.*/\1/g" -e "/^$/d" -e "s/.*server_name[ \t]\([^ ;]*\).*/\1 : ${compose}/" "${KAZ_CONF_PROXY_DIR}/${compose}_kaz_name" - done -} - -listOrgaServ () { - for compose in ${availableComposes[@]} ; do - sed -e "s/[ \t]*\([^#]*\)#.*/\1/g" -e "/^$/d" -e "s/\([^ ]*\)[ \t]*\([^ \t;]*\).*/\1 => \2 : ${compose}/" "${KAZ_CONF_PROXY_DIR}/${compose}_kaz_map" - done -} - -######################################## -list () { - previousOrga=$(listOrgaServ) - previousServ=$(listServ) - if [ $# -lt 1 ]; then - [ -n "${previousOrga}" ] && echo "${previousOrga}" - [ -n "${previousServ}" ] && echo "${previousServ}" - return - fi - for ARG in $@ - do - orga=$(echo "${previousOrga}" | grep "${ARG}.* =>") - serv=$(echo "${previousServ}" | grep "${ARG}.* =>") - [ -n "${orga}" ] && echo "${orga}" - [ -n "${serv}" ] && echo "${serv}" - done -} - -######################################## -add () { - # $1 : orga - # $2 : service - # $3 : friend-domain - [ $# -lt 3 ] && usage - badOrga $1 && echo "bad orga: ${RED}$1${NC} not in ${GREEN}${availableOrga[@]}${NC}" && usage - badCompose $2 && echo "bad compose: ${RED}$2${NC} not in ${GREEN}${availableComposes[@]}${NC}" && usage - ORGA=$1 - COMPOSE=$2 - shift; shift - CLOUD_SERVNAME="${ORGA}-${nextcloudServName}" - CLOUD_CONFIG="${DOCK_VOL}/orga_${ORGA}-cloudConfig/_data/config.php" - - # XXX check compose exist in orga ? - # /kaz/bin/kazList.sh service enable ${ORGA} - if [ "${COMPOSE}" = "${cloudHost}" ]; then - if ! [[ "$(docker ps -f name=${CLOUD_SERVNAME} | grep -w ${CLOUD_SERVNAME})" ]]; then - printKazError "${CLOUD_SERVNAME} not running... abort" - exit - fi - fi - - for FRIEND in $@; do - badDomaine "${FRIEND}" && echo "bad domaine: ${RED}${FRIEND}${NC}" && usage - done - - for FRIEND in $@; do - createCert "${FRIEND}" - if [ "${COMPOSE}" = "${cloudHost}" ]; then - IDX=$(awk 'BEGIN {flag=0; cpt=0} /trusted_domains/ {flag=1} /)/ {if (flag) {print cpt+1; exit 0}} / => / {if (flag && cpt<$1) cpt=$1}' "${CLOUD_CONFIG}") - ${SIMU} docker exec -ti -u 33 "${CLOUD_SERVNAME}" /var/www/html/occ config:system:set trusted_domains "${IDX}" --value="${FRIEND}" - fi - - previousOrga=$(listOrgaServ | grep "${FRIEND}") - [[ " ${previousOrga}" =~ " ${FRIEND} => ${ORGA} : ${COMPOSE}" ]] && echo " - already done" && continue - [[ " ${previousOrga}" =~ " ${FRIEND} " ]] && echo " - ${YELLOW}${BOLD}$(echo "${previousOrga}" | grep -e "${FRIEND}")${NC} must be deleted before" && return - if [[ -n "${SIMU}" ]] ; then - echo "${FRIEND} ${ORGA}; => ${KAZ_CONF_PROXY_DIR}/${COMPOSE}_kaz_map" - cat < ${KAZ_CONF_PROXY_DIR}/${COMPOSE}_kaz_name -server_name ${FRIEND}; -EOF - else - echo "${FRIEND} ${ORGA};" >> "${KAZ_CONF_PROXY_DIR}/${COMPOSE}_kaz_map" - cat >> "${KAZ_CONF_PROXY_DIR}/${COMPOSE}_kaz_name" <\s*'${FRIEND}'/d" -i "${CLOUD_CONFIG}" - fi - ${SIMU} sed -e "/^[ \t]*${FRIEND}[ \t]/d" -i "${KAZ_CONF_PROXY_DIR}/${COMPOSE}_kaz_map" - fi - if grep -q -e "^[ \t]*server_name ${FRIEND};" "${KAZ_CONF_PROXY_DIR}/${COMPOSE}_kaz_name" ; then - ${SIMU} sed -i "${KAZ_CONF_PROXY_DIR}/${COMPOSE}_kaz_name" \ - -e "/^[ \t]*server_name ${FRIEND};/d" - fi - done - echo "${PRG}: ${FRIEND} deleted" - CHANGE="del" - done -} - -######################################## -${CMD} $@ - -if [ -n "${CHANGE}" ] ; then - echo "Reload proxy conf" - for item in "${availableProxyComposes[@]}"; do - ${SIMU} ${KAZ_COMP_DIR}/${item}/proxy-gen.sh - ${SIMU} "${KAZ_COMP_DIR}/proxy/reload.sh" - done -fi - -########################################