Compare commits

..

3 Commits

Author SHA1 Message Date
b079498481 added test for bridge overloading...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-01-31 03:40:16 +03:00
67d7808f0b notes...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-01-31 03:10:40 +03:00
6c13fbf24b tweaking the scripting mode...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-01-30 22:40:37 +03:00
2 changed files with 41 additions and 10 deletions

View File

@ -1,5 +1,8 @@
#!/usr/bin/bash #!/usr/bin/bash
#---------------------------------------------------------------------- #----------------------------------------------------------------------
#
#
#----------------------------------------------------------------------
CT_DIR=${CT_DIR:=/etc/pve/lxc/} CT_DIR=${CT_DIR:=/etc/pve/lxc/}
@ -178,6 +181,10 @@ xread(){
shift shift
local non_empty=1 local non_empty=1
fi fi
local prefix=
if [ $SCRIPTING ] ; then
prefix='# '
fi
# skip... # skip...
if [[ "${!2}" == "SKIP" ]] \ if [[ "${!2}" == "SKIP" ]] \
|| [[ "$(eval "echo \$DFL_$2")" == "SKIP" ]] ; then || [[ "$(eval "echo \$DFL_$2")" == "SKIP" ]] ; then
@ -185,7 +192,7 @@ xread(){
return return
fi fi
if [ -z ${!2} ] ; then if [ -z ${!2} ] ; then
eval 'read -ep "'$1'" -i "$DFL_'$2'" '${2}'' eval 'read -ep "'$prefix''$1'" -i "$DFL_'$2'" '${2}''
XREAD_VARS+=(${2}) XREAD_VARS+=(${2})
fi fi
if [ -z $non_empty ] ; then if [ -z $non_empty ] ; then
@ -200,12 +207,16 @@ xread(){
# #
xreadYes(){ xreadYes(){
if [ -z ${2} ] ; then if [ -z ${2} ] ; then
local var=__X local var=__LOCAL
local __X local __LOCAL
else else
local var=${2} local var=${2}
local mode= local mode=
fi fi
local prefix=
if [ $SCRIPTING ] ; then
prefix='# '
fi
# XXX check DFL_..??? # XXX check DFL_..???
if [[ "${!var}" == "SKIP" ]] ; then if [[ "${!var}" == "SKIP" ]] ; then
eval "$var=" eval "$var="
@ -221,7 +232,7 @@ xreadYes(){
local no=n local no=n
local dfl=1 local dfl=1
fi fi
eval 'read -ep "'$1' ('$yes'/'$no') " '${var}'' eval 'read -ep "'$prefix''$1' ('$yes'/'$no') " '${var}''
XREAD_VARS+=(${var}) XREAD_VARS+=(${var})
# normalize... # normalize...
eval "${var}=${!var,,}" eval "${var}=${!var,,}"
@ -235,6 +246,7 @@ xreadYes(){
fi fi
fi fi
[ $SCRIPTING ] \ [ $SCRIPTING ] \
&& [[ "$var" != '__LOCAL' ]] \
&& echo "$var=${!var}" && echo "$var=${!var}"
if [ -z ${!var} ] ; then if [ -z ${!var} ] ; then
@ -249,18 +261,22 @@ xreadpass(){
if [[ ${!1} == 'SKIP' ]] ; then if [[ ${!1} == 'SKIP' ]] ; then
return return
fi fi
local prefix=
if [ $SCRIPTING ] ; then
prefix='# '
fi
local PASS1 local PASS1
local PASS2 local PASS2
for attempt in 1 2 3 ; do for attempt in 1 2 3 ; do
read -sep "password (Enter to skip): " PASS1 read -sep "${prefix}password (Enter to skip): " PASS1
echo echo
if [ -z $PASS1 ] ; then if [ -z $PASS1 ] ; then
return return
fi fi
read -sep "retype password: " PASS2 read -sep "${prefix}retype password: " PASS2
echo echo
if [[ $PASS1 != $PASS2 ]] ; then if [[ $PASS1 != $PASS2 ]] ; then
echo "ERR: passwords do not match." echo "ERROR: passwords do not match." >&2
continue continue
fi fi
eval ''$1'='${PASS1}'' eval ''$1'='${PASS1}''

View File

@ -49,7 +49,7 @@ if xreadYes "# Update system?" UPDATE ; then
@ apt upgrade @ apt upgrade
fi fi
if xreadYes "# Install additional apps?" APPS ; then if xreadYes "# Install additional apps?" APPS ; then
@ apt install $(SOFTWARE[@]) @ apt install ${SOFTWARE[@]}
fi fi
# Networking # Networking
@ -67,11 +67,26 @@ if xreadYes "# Create bridges?" BRIDGES ; then
xread "Gate ADMIN IP: " GATE_ADMIN_IP xread "Gate ADMIN IP: " GATE_ADMIN_IP
readBridgeVars readBridgeVars
# check if new bridges already exist in interfaces...
if [ -e /etc/network/interfaces ] \
&& grep -q \
"vmbr\(${WAN_BRIDGE}\|${LAN_BRIDGE}\|${ADMIN_BRIDGE}\)" \
/etc/network/interfaces ; then
conflict=
for br in WAN_BRIDGE LAN_BRIDGE ADMIN_BRIDGE ; do
if grep -q "vmbr${!br}" /etc/network/interfaces ; then
conflict="${conflict}, vmbr${!br} (${br})"
fi
done
echo "ERROR: will not overwrite existing bridges: ${conflict:2}" >&2
exit 1
fi
@ cp /etc/network/interfaces{,.new} @ cp /etc/network/interfaces{,.new}
BRIDGES="${\ BRIDGES="$(\
cat bridges.tpl \ cat bridges.tpl \
| expandPCTTemplate WAN_PORT ADMIN_PORT}" | expandPCTTemplate WAN_PORT ADMIN_PORT)"
# XXX add $BRIDGES to /etc/network/interfaces either before the # XXX add $BRIDGES to /etc/network/interfaces either before the
# source command or at the end... # source command or at the end...