#!/bin/sh P7ZIP=/usr/bin/7z RSYNC=/usr/bin/rsync WGET=/usr/bin/wget RYZOM_CLIENT=/usr/games/ryzom_client RYZOM_CONFIG_DEFAULT=/etc/ryzom/client_default.cfg RYZOM_CONFIG=~/.ryzom/client.cfg RYZOM_DIR=~/.ryzom DATA_DIR=$RYZOM_DIR/data mkdir -p $RYZOM_DIR if [ ! -d "$DATA_DIR" ] then # symlink user's data dir to ryzom data cache ln -s /var/cache/ryzom/data $DATA_DIR fi # Check if a directory contains Ryzom data ryzom_data_found() { # Check for directory, gamedev.bnp and ryzom.ttf COUNT=0 if [ -d $1 ] then # If there are a least 220 bnp files, we could use this directory # There are 226 bnp files in last version COUNT=$(find -L $1 -name *.bnp | wc -l) fi echo $COUNT } COUNT=$(ryzom_data_found $DATA_DIR) echo "Found $COUNT BNP files in $DATA_DIR" if [ $COUNT -lt 220 ] && [ -f $WGET ] && [ -f $P7ZIP ] then mkdir -p "$DATA_DIR/tmp" # Check free diskspace echo "Checking for free disk space..." DISKSPACE=$(df "$DATA_DIR/tmp" | grep "/dev" | awk '{print $4}') if [ $? -ne 0 ] then exit 1 fi if [ "$DISKSPACE" -lt "8000000" ] then echo "You don't have enough free space to download and uncompress Ryzom client data." exit 1 fi # Download echo "Downloading ryzom_client.7z from sourceforge..." # wget $WGET -c http://sourceforge.net/projects/ryzom/files/ryzom_client.7z -O "$DATA_DIR/tmp/ryzom_client.7z" if [ $? -ne 0 ] then exit 1 fi # Extract data echo "Extracting data from ryzom_client.7z..." cd "$DATA_DIR/tmp" # 7z $P7ZIP x ryzom_client.7z if [ $? -ne 0 ] then exit 1 fi cd .. mv -uf tmp/ryzom/data/* . # Delete temporary downloaded files rm -rf tmp fi if [ -f $RYZOM_CONFIG ] then echo "Updating $RYZOM_CONFIG..." # Escape path for sed using bash find and replace RYZOM_CONFIG_DEFAULT_ESCAPED=$(echo $RYZOM_CONFIG_DEFAULT | sed 's/\//\\\//g') # Update RootConfigFilename to be sure it's using the right default config sed -i 's/RootConfigFilename.*/RootConfigFilename = \"'$RYZOM_CONFIG_DEFAULT_ESCAPED'\"/g' $RYZOM_CONFIG fi if [ -f $RSYNC ] then echo "Patching Ryzom data..." # Rsync $RSYNC -rOtzv --progress --stats www.ryzom.com::ryzom/data/ $DATA_DIR if [ $? -ne 0 ] then exit 1 fi fi # Launch Ryzom client if it exists if [ -f $RYZOM_CLIENT ] then echo "Launching Ryzom..." nohup $RYZOM_CLIENT $1 $2 $3 2> /dev/null & fi # Wait until all previous commands are executed and displayed before exiting sync exit 0