1+
2+ #! /bin/bash
3+ # Script: KF2-admin-manager.sh
4+ # Descripción: Gestiona el valor de AdminPassword en LinuxServer-KFGame.ini según la variable KF2_ADMIN_PASSWORD
5+ # y la opción de multi-admin en KFWebAdmin.ini según KF2_MULTI_ADMIN
6+
7+ CONFIG_FILE=" $HOME /serverfiles/KFGame/Config/kf2server/LinuxServer-KFGame.ini"
8+ WEBADMIN_INI=" $HOME /serverfiles/KFGame/Config/kf2server/KFWebAdmin.ini"
9+
10+ if [ ! -f " $CONFIG_FILE " ]; then
11+ echo " ❌ No se encontró $CONFIG_FILE "
12+ exit 1
13+ fi
14+
15+ ADMIN_PASSWORD=" ${KF2_ADMIN_PASSWORD} "
16+ MULTI_ADMIN=" ${KF2_MULTI_ADMIN} "
17+
18+ if [ " $MULTI_ADMIN " = " false" ]; then
19+ if [ -f " $HOME /serverfiles/KFGame/Config/kf2server/KFMultiAdmin.ini" ]; then
20+ rm -f " $HOME /serverfiles/KFGame/Config/kf2server/KFMultiAdmin.ini"
21+ echo " [KF2-admin-manager.sh] Archivo KFMultiAdmin.ini eliminado porque KF2_MULTI_ADMIN=false."
22+ fi
23+ fi
24+
25+ # --- Multi Admin WebAdmin ---
26+ if [ -f " $WEBADMIN_INI " ]; then
27+ if [ " $MULTI_ADMIN " = " true" ]; then
28+ # Si la línea ya existe en la sección, no hacer nada
29+ if ! awk ' /\[WebAdmin.WebAdmin\]/{f=1} /\[/{if($0!="[WebAdmin.WebAdmin]")f=0} f && /AuthenticationClass=WebAdmin.MultiWebAdminAuth/{found=1} END{exit !found}' " $WEBADMIN_INI " ; then
30+ # Agregar la línea al final de la sección [WebAdmin.WebAdmin]
31+ awk '
32+ BEGIN{added=0}
33+ /^\[WebAdmin.WebAdmin\]/{print;in_section=1;next}
34+ /^\[/{if(in_section&&!added){print "AuthenticationClass=WebAdmin.MultiWebAdminAuth";added=1}in_section=0}
35+ {print}
36+ END{if(in_section&&!added)print "AuthenticationClass=WebAdmin.MultiWebAdminAuth"}
37+ ' " $WEBADMIN_INI " > " $WEBADMIN_INI .tmp" && mv " $WEBADMIN_INI .tmp" " $WEBADMIN_INI "
38+ echo " [KF2-admin-manager.sh] Multi admin habilitado en $WEBADMIN_INI "
39+ else
40+ echo " [KF2-admin-manager.sh] Multi admin ya estaba habilitado en $WEBADMIN_INI "
41+ fi
42+ else
43+ # Eliminar la línea si existe en la sección
44+ awk '
45+ BEGIN{in_section=0}
46+ /^\[WebAdmin.WebAdmin\]$/{in_section=1;print;next}
47+ /^\[/{if(in_section){in_section=0}}
48+ {if(!(in_section && $0=="AuthenticationClass=WebAdmin.MultiWebAdminAuth"))print}
49+ ' " $WEBADMIN_INI " > " $WEBADMIN_INI .tmp" && mv " $WEBADMIN_INI .tmp" " $WEBADMIN_INI "
50+ echo " [KF2-admin-manager.sh] Multi admin deshabilitado (o ya no estaba) en $WEBADMIN_INI "
51+ fi
52+ else
53+ echo " ⚠️ No se encontró $WEBADMIN_INI , se omite gestión de multi admin."
54+ fi
55+
56+
57+ # Si la variable está vacía, dejar AdminPassword vacío
58+ if [ -z " $ADMIN_PASSWORD " ]; then
59+ sed -i ' s/^AdminPassword=.*/AdminPassword=/' " $CONFIG_FILE "
60+ echo " [KF2-admin-manager.sh] AdminPassword eliminado (vacío) en $CONFIG_FILE "
61+ else
62+ # Si existe la línea, modificarla; si no, agregarla
63+ if grep -q ' ^AdminPassword=' " $CONFIG_FILE " ; then
64+ sed -i " s/^AdminPassword=.*/AdminPassword=${ADMIN_PASSWORD} /" " $CONFIG_FILE "
65+ echo " [KF2-admin-manager.sh] AdminPassword actualizado en $CONFIG_FILE "
66+ else
67+ echo " AdminPassword=${ADMIN_PASSWORD} " >> " $CONFIG_FILE "
68+ echo " [KF2-admin-manager.sh] AdminPassword agregado en $CONFIG_FILE "
69+ fi
70+ fi
0 commit comments