AutoCompiler
AutoCompiler vous le connaissez tous, il y a donc plus besoin de le décrire, peut-être juste les fichiers qui seront automatiquement appliqués. PATCHES_DIR les suggestions sur le patch ou se trouve le repo.

Les fichiers suivants dans un répertoire, et définir l'indicateur exécutable.

Fichier de Config :

Code :
#######################
########CONFIG#########

# MODES #
PATCH_MODE=1
PAUSE_MODE=0
DEBUG_MODE=0

JOBS=2

INSTALL_DIR="/home/wow/bin"
ETC_DIR="/home/wow/etc"

PATCHES_DIR="/home/wow/patches"

SOURCES="/home/wow/sources"
SOURCES_GIT="https://github.com/TrinityCore/TrinityCore.git"

#########END###########
#######################

Fichier DOMake :

Code :
#!/bin/bash
. config

function pause(){
        read -s -n 1 -p "Appuyer pour continuer..."
}

R=$1
if [ "$R" = "" ]; then
        R="HEAD"
fi


echo "Trinity Autocompiler v.1.6.2 for HG v.1.0++ CMake 2.6++"
echo "Edité par Aribeth pour git usage et traduit par Subway's"

if [ -e $SOURCES ]; then
        echo " "
        echo " "
        echo "Supprimer les précédentes modifications Trinity."
        cd $SOURCES
        # patch system
        git reset --hard

        if [ ${PAUSE_MODE} = 1 ]; then
                pause
        fi
fi


echo " "
echo " "
echo "Mettre à jour TrinityCore."
if [ ! -e $SOURCES ]; then
        git clone $SOURCES_GIT $SOURCES
else
        cd $SOURCES
        git fetch -u
        
        git checkout $R
        
fi
        
if [ ${PAUSE_MODE} = 1 ]; then
        pause
fi


if [ ${PATCH_MODE} = 1 ];
then

        echo " "
        echo " "
        echo "Appliquer les patches customs."
        cd $PATCHES_DIR
        FILENAMES=`ls -1 | grep .patch`
        for FILENAME in $FILENAMES
        do
                PATCH_FILE=$FILENAME
                patch -d ${SOURCES} -p1 < ${PATCH_FILE}
        done
        if [ ${PAUSE_MODE} = 1 ]; then
                pause
        fi
fi


echo " "
echo " "
echo "Configuration de Trinity."
cd ${SOURCES}
mkdir -p bin
cd bin
export CXXFLAGS="-O3"
export CFLAGS="-O3"
DEBUGS="-DDO_DEBUG=0"

OPTIONS="-DDO_MYSQL=1 -DDO_SCRIPTS=1 -DDO_SQL=1 -DDO_RA=1 -DDO_CLI=1 -DPREFIX=${INSTALL_DIR} -DCONF_DIR=${ETC_DIR}"
if [ $DEBUG_MODE -eq 1 ]; then
        export CXXFLAGS="-O0 -ggdb3"
        export CFLAGS="-O0 -ggdb3"
        DEBUGS="-DDO_DEBUG=1"
fi
OPTIONS="$OPTIONS $DEBUGS"
cmake ../ $OPTIONS
if [ ${PAUSE_MODE} = 1 ]; then
        pause
fi

make -j${JOBS}


Fichier DOInstall :

#!/bin/bash
. config

Code :
cd ${SOURCES}/bin
make install
cd ${SOURCES}
trev="Changeset: "$(git rev-parse HEAD)
cp ${INSTALL_DIR}/git_info.log ${INSTALL_DIR}/git_info.log.old
echo "${trev}" > ${INSTALL_DIR}/git_info.log
cat ${INSTALL_DIR}/git_info.log.old >> ${INSTALL_DIR}/git_info.log
rm ${INSTALL_DIR}/git_info.log.old

oublié pas +1 pour merci
Super ce petit script !
Ha mais c'est le bash d'elegos !
Je me disais bien que j'avais déjà vu ça quelque part.
Merci pour la traduction et l’utilisation de git.

Le miens est plus complet.... Siffle
Moi je remplacerai
Code :
/home/wow/...

par
Code :
/home/$username/...
Le "Supprimer les précédentes modifications Trinity", je trouve ça un peu hard. Ca voudrait dire que tu peux pas modifier des choses sans forcément les
commits en locales ? Un peu ardu.

Sinon quelques ptites optimisations possibles.
Et Elmsroth : de base, c'est $USER la variable d'env, non $username qui contient le nom de l'user courant, du moins chez moi.

Merci pour ce genre de script, même si c'est bien de comprendre réellement comment il marche et comment git marche par la même occasion (http://www.kernel.org/pub/software/scm/g...orial.html ).
Pas chez moi Clin moi je met $username

@Atikae : ton lien comporte une erreur, 2 caractères en trop ")." Clin
Voilà, corrigé pour le lien. Tu tournes sous quelle distrib ?
Debian Squeeze, (mais j'ai des variables d’environnement perso aussi Clin )
Ceci explique cela Clin J'ai la squeeze aussi et $username ca doit être de ton côté.
Ouais c'est fort possible je pense car c’est des scripts qui se lancent à l'install du dédié, ca me crée les users générique, genère des mdp aléatoire et configure tout le serveur pour trinity.

Retourner en haut Accueil