zonemod autostart

This commit is contained in:
CroneKorkN 2025-10-29 10:19:53 +01:00
parent 891e29a362
commit dc614483b5
Signed by: cronekorkn
SSH key fingerprint: SHA256:v0410ZKfuO1QHdgKBsdQNF64xmTxOF8osF1LIqwTcVw
5 changed files with 47 additions and 9 deletions

View file

@ -132,11 +132,11 @@ steam mkdir -p /opt/l4d2/overlays/competitive_rework/left4dead2
test -d /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/cfgogl || \
curl -L https://github.com/SirPlease/L4D2-Competitive-Rework/archive/refs/heads/master.tar.gz | steam tar -xz --strip-components=1 -C /opt/l4d2/overlays/competitive_rework/left4dead2
if ! test -f /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server_original.cfg
then
steam mv /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server.cfg /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server_original.cfg
steam echo -e "exec server_original.cfg\nsm_forcematch zonemod" > /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server.cfg
fi
# if ! test -f /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server_original.cfg
# then
# steam mv /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server.cfg /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server_original.cfg
# steam echo -e "exec server_original.cfg\nsm_forcematch zonemod" > /opt/l4d2/overlays/competitive_rework/left4dead2/cfg/server.cfg
# fi
# -- SERVERS -- #

View file

@ -14,7 +14,7 @@ function steam() {
}
mountpoint -q "/opt/l4d2/servers/$name/merged" && umount "/opt/l4d2/servers/$name/merged"
steam rm -rf "/opt/l4d2/servers/$name"
steam rm -rf "/opt/l4d2/servers/$name/work" "/opt/l4d2/servers/$name/upper" "/opt/l4d2/servers/$name/merged"
steam mkdir -p \
"/opt/l4d2/servers/$name" \
@ -26,4 +26,10 @@ mount -t overlay overlay \
-o "lowerdir=/opt/l4d2/overlays/$overlay:/opt/l4d2/installation,upperdir=/opt/l4d2/servers/$name/upper,workdir=/opt/l4d2/servers/$name/work" \
"/opt/l4d2/servers/$name/merged"
steam "/opt/l4d2/servers/$name/merged/srcds_run" -norestart -pidfile "/opt/l4d2/servers/$name/pid" -game left4dead2 -ip 0.0.0.0 -port "$port" $params +hostname "Crone_$name" +map c1m1_hotel
# TODO: pass config file paht instead of expecting it here
steam mv "/opt/l4d2/servers/$name/merged/left4dead2/cfg/server.cfg" "/opt/l4d2/servers/$name/merged/left4dead2/cfg/server_original.cfg"
steam touch "/opt/l4d2/servers/$name/merged/left4dead2/cfg/server.cfg"
echo "exec server_original.cfg" > "/opt/l4d2/servers/$name/merged/left4dead2/cfg/server.cfg"
cat "/opt/l4d2/servers/$name/server.cfg" >> "/opt/l4d2/servers/$name/merged/left4dead2/cfg/server.cfg"
steam "/opt/l4d2/servers/$name/merged/srcds_run" -norestart -pidfile "/opt/l4d2/servers/$name/pid" -game left4dead2 -ip 0.0.0.0 -port "$port" +hostname "Crone_$name" $params +map c1m1_hotel +exec server_wrapper

View file

@ -1,3 +1,5 @@
directories = {}
files = {
'/opt/l4d2/setup': {
'mode': '755',
@ -7,6 +9,10 @@ files = {
},
'/opt/l4d2/start': {
'mode': '755',
'triggers': {
f'svc_systemd:left4dead2-{server_name}.service:restart'
for server_name in node.metadata.get('left4dead2').keys()
},
},
}
@ -21,7 +27,27 @@ svc_systemd = {
},
}
for server_name in node.metadata.get('left4dead2').keys():
for server_name, config in node.metadata.get('left4dead2').items():
directories[f'/opt/l4d2/servers/{server_name}'] = {
'owner': 'steam',
'mode': '755',
'needed_by': {
f'svc_systemd:left4dead2-{server_name}.service',
},
}
files[f'/opt/l4d2/servers/{server_name}/server.cfg'] = {#
'content': '\n'.join(config.get('config', [])) + '\n',
'owner': 'steam',
'mode': '644',
'needed_by': {
f'svc_systemd:left4dead2-{server_name}.service',
},
'triggers': {
f'svc_systemd:left4dead2-{server_name}.service:restart',
},
}
svc_systemd[f'left4dead2-{server_name}.service'] = {
'enabled': True,
'running': True,

View file

@ -51,7 +51,7 @@ def server_units(metadata):
params = config.get("params", "")
if config.get("tickrate"):
params += f" -tickrate {config['tickrate']}"
params = f"-tickrate {config['tickrate']} " + params
units[f'left4dead2-{name}.service'] = {
'Unit': {

View file

@ -41,6 +41,12 @@
'overlay': 'competitive_rework',
'port': 27017,
'tickrate': '100',
'config': [
'sm_forcematch zonemod',
'hostname server3_comp1_test',
'motd_enabled 0',
'rcon_password ' + vault.decrypt('encrypt$gAAAAABpAdZhxwJ47I1AXotuZmBvyZP1ecVTt9IXFkLI28JiVS74LKs9QdgIBz-FC-iXtIHHh_GVGxxKQZprn4UrXZcvZ57kCKxfHBs3cE2JiGnbWE8_mfs=').value,
],
},
},
'bind': {