Skip to content

Instantly share code, notes, and snippets.

@jurkan
Created July 3, 2012 20:02
Show Gist options
  • Save jurkan/3042568 to your computer and use it in GitHub Desktop.
Save jurkan/3042568 to your computer and use it in GitHub Desktop.
Manaclientautoupdate
#!/bin/bash
case $1 in
start)
cd /srv/manademo/
rm ./manaserv-game.log
rm ./manaserv-account.log
su manademo -c "HOME=\"/srv/manademo\" ./start-server.sh 2>/dev/null" > /dev/null &
;;
stop)
cd /srv/manademo/
su manademo -c "./stop-server.sh"
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: manademo {start|stop|restart}"
;;
esac
#!/bin/bash
# Konfigurationsdatei einbinden
. /etc/manalpcautoupdate.conf
SERVER_DATA_PATH=${SERVER_DATA_PATH%/}
SERVER_START_CMD=${SERVER_START_CMD}
SERVER_STOP_CMD=${SERVER_STOP_CMD}
REPOSITORY_TRUNK_PATH=${REPOSITORY_TRUNK_PATH%/}
UPDATE_SERVER_PATH=${UPDATE_SERVER_PATH%/}
UPDATE_CONFIG_ROOT="${UPDATE_SERVER_PATH}/config.manaupdate.zip"
UPDATE_MAPS_ROOT="${UPDATE_SERVER_PATH}/maps.manaupdate.zip"
UPDATE_GRAPHICS_ROOT="${UPDATE_SERVER_PATH}/graphics.manaupdate.zip"
## Stop server
echo -n "Stopping server... "
${SERVER_STOP_CMD} >/dev/null 2>&1
echo "[DONE]"
## Client Update
# Get existing update file
echo -n "Creating updates... "
for old_archive_config in ${UPDATE_SERVER_PATH}/*.config.manaupdate.zip; do :; done;
for old_archive_maps in ${UPDATE_SERVER_PATH}/*.maps.manaupdate.zip; do :; done;
for old_archive_graphics in ${UPDATE_SERVER_PATH}/*.graphics.manaupdate.zip; do :; done;
target_archive_config=${UPDATE_SERVER_PATH}/`date +%s`.config.manaupdate.zip
target_archive_maps=${UPDATE_SERVER_PATH}/`date +%s`.maps.manaupdate.zip
target_archive_graphics=${UPDATE_SERVER_PATH}/`date +%s`.graphics.manaupdate.zip
mv ${old_archive_config} ${target_archive_config} 2> /dev/null
mv ${old_archive_maps} ${target_archive_maps} 2> /dev/null
mv ${old_archive_graphics} ${target_archive_graphics} 2> /dev/null
# Update config files, sprites and maps in the zip file
cd ${REPOSITORY_TRUNK_PATH}
# ./*.xsl and ./*.xsd removed from config files zip (add if necessary)
# Create base update if necessary
[ ! -f ${UPDATE_CONFIG_ROOT} ] && zip -9q ${UPDATE_CONFIG_ROOT} ./*.xml
[ ! -f ${UPDATE_MAPS_ROOT} ] && zip -9rq ${UPDATE_MAPS_ROOT} maps
[ ! -f ${UPDATE_GRAPHICS_ROOT} ] && zip -9rq ${UPDATE_GRAPHICS_ROOT} items particles skills sprites tilesets tiles
#
zip -9uq ${UPDATE_CONFIG_ROOT} ./*.xml -DF --out ${target_archive_config}
zip -9urq ${UPDATE_MAPS_ROOT} maps -DF --out ${target_archive_maps}
zip -9urq ${UPDATE_GRAPHICS_ROOT} items particles skills sprites tilesets tiles -DF --out ${target_archive_graphics}
echo "[DONE]"
echo -n "Generating Checksums... "
# Create resources2.txt
echo "`basename ${UPDATE_CONFIG_ROOT}` `adler32 ${UPDATE_CONFIG_ROOT} | grep -o \"[a-z0-9]*$\"`" > ${UPDATE_SERVER_PATH}/resources2.txt
echo "`basename ${UPDATE_MAPS_ROOT}` `adler32 ${UPDATE_MAPS_ROOT} | grep -o \"[a-z0-9]*$\"`" >> ${UPDATE_SERVER_PATH}/resources2.txt
echo "`basename ${UPDATE_GRAPHICS_ROOT}` `adler32 ${UPDATE_GRAPHICS_ROOT} | grep -o \"[a-z0-9]*$\"`" >> ${UPDATE_SERVER_PATH}/resources2.txt
echo "`basename ${target_archive_config}` `adler32 ${target_archive_config} | grep -o \"[a-z0-9]*$\"`" >> ${UPDATE_SERVER_PATH}/resources2.txt
echo "`basename ${target_archive_maps}` `adler32 ${target_archive_maps} | grep -o \"[a-z0-9]*$\"`" >> ${UPDATE_SERVER_PATH}/resources2.txt
echo "`basename ${target_archive_graphics}` `adler32 ${target_archive_graphics} | grep -o \"[a-z0-9]*$\"`" >> ${UPDATE_SERVER_PATH}/resources2.txt
echo "[DONE]"
# Set right permissions
echo -n "Setting permissions... "
chown ${UPDATE_SERVER_OWNERANDGROUP} ${target_archive_config}
chown ${UPDATE_SERVER_OWNERANDGROUP} ${target_archive_maps}
chown ${UPDATE_SERVER_OWNERANDGROUP} ${target_archive_graphics}
chown ${UPDATE_SERVER_OWNERANDGROUP} ${UPDATE_CONFIG_ROOT}
chown ${UPDATE_SERVER_OWNERANDGROUP} ${UPDATE_MAPS_ROOT}
chown ${UPDATE_SERVER_OWNERANDGROUP} ${UPDATE_GRAPHICS_ROOT}
chown ${UPDATE_SERVER_OWNERANDGROUP} ${UPDATE_SERVER_PATH}/resources2.txt
chmod ${UPDATE_SERVER_RIGHTS} ${target_archive_config}
chmod ${UPDATE_SERVER_RIGHTS} ${target_archive_maps}
chmod ${UPDATE_SERVER_RIGHTS} ${target_archive_graphics}
chmod ${UPDATE_SERVER_RIGHTS} ${UPDATE_CONFIG_ROOT}
chmod ${UPDATE_SERVER_RIGHTS} ${UPDATE_MAPS_ROOT}
chmod ${UPDATE_SERVER_RIGHTS} ${UPDATE_GRAPHICS_ROOT}
chmod ${UPDATE_SERVER_RIGHTS} ${UPDATE_SERVER_PATH}/resources2.txt
echo "[DONE]"
## Start server
echo -n "Starting server... "
${SERVER_START_CMD} >/dev/null 2>&1
echo "[DONE]"
#
# Settings for the Manalpc Autoupdate-Skript
#
# The data path of manaserv
SERVER_DATA_PATH="/srv/manademo/data"
# The command to start manaserv
SERVER_START_CMD="/etc/rc.d/manademo start"
# The command to stop manaserv
SERVER_STOP_CMD="/etc/rc.d/manademo stop"
# The path of the data repository trunk
REPOSITORY_TRUNK_PATH="/path/to/it/"
# Path update server
UPDATE_SERVER_PATH="/srv/http/manademo"
# Owner and group of files in update server (e.g. http:http)
UPDATE_SERVER_OWNERANDGROUP="root:root"
# Permissions for files in update server (e.g. 664)
UPDATE_SERVER_RIGHTS="664"
# Owner and group of files in manaserv (e.g. root:root)
SERVER_OWNERANDGROUP="manademo:users"
# Permissions for files in manaserv (e.g. 664)
SERVER_RIGHTS="=rwXrwXrX"
#!/bin/bash
while true
do
manaserv-account --v 3
echo "Last crash at `date`" > last_crash_manaserv-account.txt
sleep 5
done
#!/bin/bash
while true
do
manaserv-game --v 3
echo "Last crash at `date`" > last_crash_manaserv-game.txt
sleep 5
done
#!/bin/bash
./start-manaserv-account.sh &
sleep 5
./start-manaserv-game.sh &
#!/bin/bash
pkill -SIGTERM manaserv
sleep 1
pkill -SIGKILL manaserv
@jurkan
Copy link
Author

jurkan commented Jul 3, 2012

Note that SERVER_DATA_PATH is currently not used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment