made buildAssets more flexible...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2024-01-10 03:09:10 +03:00
parent 0c67c3c36d
commit f21d15c0a5
4 changed files with 43 additions and 25 deletions

View File

@ -329,6 +329,44 @@ buildAssets(){
return return
fi fi
PATTERNS=()
DFL_VARS=(
EMAIL
DOMAIN
CTHOSTNAME
GATE_HOSTNAME
NS_HOSTNAME
GATE_LAN_IP
GATE_ADMIN_IP
NS_LAN_IP
NS_ADMIN_IP
WAN_IP
WAN_GATE
LAN_IP
LAN_GATE
ADMIN_IP
ADMIN_GATE
)
for var in ${DFL_VARS} ; do
PATTERNS+=("-e 's/\\\${${var}}/'\${${var}/\\//\\\\/}'/g'")
done
IP_VARS=(
GATE_LAN_IPn
GATE_ADMIN_IPn
NS_LAN_IPn
NS_ADMIN_IPn
WAN_IPn
LAN_IPn
ADMIN_IPn
)
for var in ${IP_VARS} ; do
PATTERNS+=("-e 's/\\\${${var}}/'\${${var}/\\/*}'/g'")
done
# args...
for var in $@ ; do
PATTERNS+=("-e 's/\\\${${var}}/'\${${var}/\\//\\\\/}'/g'")
done
local TEMPLATES=($(find "$TEMPLATE_DIR" -type f)) local TEMPLATES=($(find "$TEMPLATE_DIR" -type f))
for file in "${TEMPLATES[@]}" ; do for file in "${TEMPLATES[@]}" ; do
file=${file#${TEMPLATE_DIR}} file=${file#${TEMPLATE_DIR}}
@ -339,28 +377,7 @@ buildAssets(){
mkdir -p "$(dirname "${ASSETS_DIR}/${file}")" mkdir -p "$(dirname "${ASSETS_DIR}/${file}")"
cat "${TEMPLATE_DIR}/${file}" \ cat "${TEMPLATE_DIR}/${file}" \
| sed \ | sed \
-e 's/\${EMAIL}/'${EMAIL/\//\\/}'/g' \ ${PATTERNS[@]} \
-e 's/\${DOMAIN}/'${DOMAIN/\//\\/}'/g' \
-e 's/\${CTHOSTNAME}/'${CTHOSTNAME/\//\\/}'/g' \
-e 's/\${GATE_HOSTNAME}/'${GATE_HOSTNAME/\//\\/}'/g' \
-e 's/\${NS_HOSTNAME}/'${NS_HOSTNAME/\//\\/}'/g' \
-e 's/\${GATE_LAN_IP}/'${GATE_LAN_IP/\//\\/}'/g' \
-e 's/\${GATE_LAN_IPn}/'${GATE_LAN_IP/\/*}'/g' \
-e 's/\${GATE_ADMIN_IP}/'${GATE_ADMIN_IP/\//\\/}'/g' \
-e 's/\${GATE_ADMIN_IPn}/'${GATE_ADMIN_IP/\/*}'/g' \
-e 's/\${NS_LAN_IP}/'${NS_LAN_IP/\//\\/}'/g' \
-e 's/\${NS_LAN_IPn}/'${NS_LAN_IP/\/*}'/g' \
-e 's/\${NS_ADMIN_IP}/'${NS_ADMIN_IP/\//\\/}'/g' \
-e 's/\${NS_ADMIN_IPn}/'${NS_ADMIN_IP/\/*}'/g' \
-e 's/\${WAN_IP}/'${WAN_IP/\//\\/}'/g' \
-e 's/\${WAN_IPn}/'${WAN_IP/\/*}'/g' \
-e 's/\${WAN_GATE}/'${WAN_GATE/\//\\/}'/g' \
-e 's/\${LAN_IP}/'${LAN_IP/\//\\/}'/g' \
-e 's/\${LAN_IPn}/'${LAN_IP/\/*}'/g' \
-e 's/\${LAN_GATE}/'${LAN_GATE/\//\\/}'/' \
-e 's/\${ADMIN_IP}/'${ADMIN_IP/\//\\/}'/g' \
-e 's/\${ADMIN_IPn}/'${ADMIN_IP/\/*}'/g' \
-e 's/\${ADMIN_GATE}/'${ADMIN_GATE/\//\\/}'/g' \
> "${ASSETS_DIR}/${file}" > "${ASSETS_DIR}/${file}"
done done
} }

View File

@ -72,7 +72,7 @@ while true ; do
xread "user name for ssh: " SSH_USER xread "user name for ssh: " SSH_USER
[ -z $SSH_USER ] \ [ -z $SSH_USER ] \
|| @ lxc-attach $ID -- adduser $SSH_USER || @ lxc-attach $ID -- adduser $SSH_USER
read -ep "Add another user? [y/N]: " MORE read -ep "Add another user? [y/N] " MORE
if [[ $MORE == 'y' ]] ; then if [[ $MORE == 'y' ]] ; then
continue continue
fi fi

View File

@ -72,7 +72,7 @@ echo "# Creating CT..."
pctCreateAlpine $ID "${OPTS_STAGE_1}" "$PASS" pctCreateAlpine $ID "${OPTS_STAGE_1}" "$PASS"
echo "# Installing dependencies..." echo "# Installing dependencies..."
@ lxc-attach $ID apk add iptables wireguard-tools-wg-quick make @ lxc-attach $ID apk add iptables wireguard-tools-wg-quick make bind-tools
echo "# Copying assets..." echo "# Copying assets..."
@ pct-push-r $ID ./assets / @ pct-push-r $ID ./assets /

View File

@ -13,7 +13,8 @@ CLIENT_DIR := $(SERVER_DIR)/clients/
CLIENT_IPS ?= 10.42.0.0/16 CLIENT_IPS ?= 10.42.0.0/16
ENDPOINT_PORT ?= 51820 ENDPOINT_PORT ?= 51820
ENDPOINT ?= ${DOMAIN} #ENDPOINT ?= ${DOMAIN}
ENDPOINT ?= $(shell dig +short ${DOMAIN} | tail -1)
DNS ?= ${NS_LAN_IPn} DNS ?= ${NS_LAN_IPn}
ALLOWED_IPS ?= 0.0.0.0/0 ALLOWED_IPS ?= 0.0.0.0/0