Ich hatte früher öfters Fehler in meinem Mapcycle und habe mich hinterher gewundert, warum es nicht mehr weiter ging. Kurz darauf habe ich mich entschlossen eine Überprüfung im meinem Script einzubauen. Leider war diese etwas umständlich und hat viel Zeit fürs überprüfen gebraucht. Bei 1000 Maps und 6 installierten Server kann das etwas länger dauern.
Mit dem Script was ich jetzt geschrieben habe, kann man den Mapcycle mit der Maplist vergleichen.
check_mapcycle.sh
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#!/bin/bash
function usage {
echo "$0 [maplist] [mapcyclefile]"
}
function check {
maplist=$1
mapcycle=$2
for map in $(cat $mapcycle); do
grep -q "$map$" $maplist; if [ $? = 1 ]; then echo "Wrong Map: $map"; fi
done
}
if [ $# -lt 2 ]; then usage; exit; fi
if [ ! -f $1 ]; then echo "Missing Maplistfile $1"; usage; fi
if [ ! -f $2 ]; then echo "Missing Mapcyclefile $2"; usage; fi
check $1 $2
|
Verwendung: ./check_mapcycle.sh maplist.txt mapcycle.txt
Bei mir rufe ich das script z.B. so auf: ./check_mapcycle.sh mappool/hl2/cstrike/maplist.txt server/ggdm/hl2/cstrike/mapcycle.txt
Das Script berücksichtigt auch nur ganze Namen. D.h. wenn de_trading im Mapcycle steht und in der Maplist aber nur de_trading_b1 vorhanden ist, wird das vom Script bemerkt und ausgegeben.
Wenn keine aktuelle maplist.txt vorhanden ist, kann auch eine eben schnell erstellt werden.
|
Quellcode
|
1
|
ls /irgendwo/cstrike/maps/ | grep '\.bsp$' | sed 's/\.bsp$//' | sort > /irgendwo/cstrike/maplist.txt
|
fertig ist die maplist.txt