#!/bin/bash set -o verbose # =================== IMPORTANT =================== # Ce script stoppe et relance le shard tout seul # # Il sert à recalculer les packed_sheets, sheet_id.bin et # visual_slot.tab après que des changements de datasheets dans # khaganat-data aient été pullés. # Il est donc nécessaire de faire un patch client # qui est automatiquement mis en place à la fin du script # # Il faut juste incrémenter de 1 l'indice comme habituellement # # Cela est proposé automatiquement à la fin, après # l'éventuelle modification de la patch-release # # ------------- Editer ces variables --------------- # indiquer ici le dossier d'installation des sources RC export RYZOM_HOME=~/khanat-code export RYZOM_DATA_HOME=~/khanat-ressources export PATCH_CLIENT_SYSTEM=~/patch_service # ------------- Fin des variables --------------- # On va dans le répertoire des data cd $RYZOM_DATA_HOME # On met à jour les données avec la branche Lirria du dépot de data git pull https://git.khaganat.net/khaganat/khanat-ressources.git git checkout lirria # On stoppe le shard shard stop # supprimer les anciennes packed_sheets du dossier serveur et dossier client rm -f $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets rm -f $RYZOM_HOME/code/ryzom/server/data_shard/*.packed_sheets rm -f $RYZOM_HOME/code/ryzom/common/data_common/visual_slot.tab # regénérer le fichier sheet_id.bin cd $RYZOM_HOME/code/build/bin ./make_sheet_id -o$RYZOM_DATA_HOME/leveldesign/game_elem/sheet_id.bin $RYZOM_DATA_HOME/leveldesign/game_elem $RYZOM_DATA_HOME/leveldesign/game_element $RYZOM_DATA_HOME/leveldesign/world $RYZOM_DATA_HOME/leveldesign/ecosystems $RYZOM_DATA_HOME/sound # regénérer les packed_sheets cd $RYZOM_HOME/code/ryzom/tools/sheets_packer ./sheets_packer # copier le nouveau visual_slot.tab aux bons endroit cp visual_slot.tab $RYZOM_HOME/code/ryzom/client/data/visual_slot.tab cp visual_slot.tab $RYZOM_HOME/code/ryzom/common/data_common/visual_slot.tab # On obtient dans $RYZOM_HOME/code/ryzom/client/data/ : # - les packed_sheets du client # - le fichier lmconts.packed # Dans $RYZOM_HOME/code/ryzom/common/data_common/ # - le visual_slot.tab # Dans $RYZOM_DATA_HOME/leveldesign/game_elem/ # - le sheet_id.bin # On copie les données nécessaires au client dans le répertoire de création du patch. # Cela inclue les fichiers de traduction rm -Rf $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_fr/* rm -Rf $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_en/* rm -Rf $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_wk/* rm -Rf $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_es/* rm -Rf $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_de/* rm -Rf $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_ru/* rm -Rf $PATCH_CLIENT_SYSTEM/kh_server/* cp $RYZOM_HOME/code/ryzom/common/data_common/database.xml $PATCH_CLIENT_SYSTEM/kh_server/ cp $RYZOM_HOME/code/ryzom/common/data_common/msg.xml $PATCH_CLIENT_SYSTEM/kh_server/ cp $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets $PATCH_CLIENT_SYSTEM/kh_server/ cp $RYZOM_HOME/code/ryzom/client/data/*.packed $PATCH_CLIENT_SYSTEM/kh_server/ cp $RYZOM_HOME/code/ryzom/common/data_common/visual_slot.tab $PATCH_CLIENT_SYSTEM/kh_server/ cp $RYZOM_DATA_HOME/leveldesign/game_elem/sheet_id.bin $PATCH_CLIENT_SYSTEM/kh_server/ cp $RYZOM_DATA_HOME/translation/translated/*fr.* $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_fr/ cp $RYZOM_DATA_HOME/translation/translated/*en.* $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_en/ cp $RYZOM_DATA_HOME/translation/translated/*wk.* $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_wk/ cp $RYZOM_DATA_HOME/translation/translated/*es.* $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_es/ cp $RYZOM_DATA_HOME/translation/translated/*de.* $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_de/ cp $RYZOM_DATA_HOME/translation/translated/*ru.* $PATCH_CLIENT_SYSTEM/dataserver/kh_translate_ru/ # On va dans le répertoire où on va générer le nouveau dataserver.bnp cd $PATCH_CLIENT_SYSTEM/dataserver/ bnp_make -p kh_translate_fr bnp_make -p kh_translate_en bnp_make -p kh_translate_wk bnp_make -p kh_translate_es bnp_make -p kh_translate_de bnp_make -p kh_translate_ru cd $PATCH_CLIENT_SYSTEM/ bnp_make -p kh_server rm $PATCH_CLIENT_SYSTEM/patch_game/bnp/kh_translate_fr.bnp rm $PATCH_CLIENT_SYSTEM/patch_game/bnp/kh_translate_en.bnp rm $PATCH_CLIENT_SYSTEM/patch_game/bnp/kh_translate_wk.bnp rm $PATCH_CLIENT_SYSTEM/patch_game/bnp/kh_translate_es.bnp rm $PATCH_CLIENT_SYSTEM/patch_game/bnp/kh_translate_de.bnp rm $PATCH_CLIENT_SYSTEM/patch_game/bnp/kh_translate_ru.bnp rm $PATCH_CLIENT_SYSTEM/patch_game/bnp/kh_server.bnp mv dataserver/kh_translate_fr.bnp $PATCH_CLIENT_SYSTEM/patch_game/bnp/ mv dataserver/kh_translate_en.bnp $PATCH_CLIENT_SYSTEM/patch_game/bnp/ mv dataserver/kh_translate_wk.bnp $PATCH_CLIENT_SYSTEM/patch_game/bnp/ mv dataserver/kh_translate_es.bnp $PATCH_CLIENT_SYSTEM/patch_game/bnp/ mv dataserver/kh_translate_de.bnp $PATCH_CLIENT_SYSTEM/patch_game/bnp/ mv dataserver/kh_translate_ru.bnp $PATCH_CLIENT_SYSTEM/patch_game/bnp/ mv kh_server.bnp $PATCH_CLIENT_SYSTEM/patch_game/bnp/ read -p "Appuyer sur une touche pour continuer ." # On peut éventuellement ajouter dans $PATCH_CLIENT_SYSTEM/patchgame/bnp/ les autres .bnp qui doivent être patchés ### VERIFIER QU'ON A BIEN LISTE TOUS LES NOUVEAUX BNP DANS $PATCH_CLIENT_SYSTEM/patchgame/ryzom.xml # nano $PATCH_CLIENT_SYSTEM/patchgame/ryzom.xml # Ligne ajoutée pour les données issues du serveur : # <_Files type="STRING" value="dataserver.bnp"/> # On génère un nouveau patch patch_gen updateProduct patch_game/ryzom.xml read -p "Appuyer sur une touche pour continuer ." # On peut éditer la release note à cette occasion : nano patch_game/patch/index.php # On peut activer la mise à disposition du patch # Il suffit d'incrémenter de 1 les deux chiffres du fichier Lirria.version ci-dessous nano patch_game/patch/Lirria.version # On relance le shard shard start