Jednoduchý skript ke stažení zdrojáků na serveru z repozitáře nebo z http odkazu
pro správný chod skriptů potřebujete na debian wheezy / ubuntu linuxu mít tyto příkazy za sebou: na ubuntu:
sudo su
na debianu/ubuntu:
apt-get install git build-essential autoconf libtool gcc g++ make cmake git-core wget p7zip-full libncurses5-dev openssl libssl-dev mysql-client libmysqlclient15-dev libmysql++-dev libreadline6-dev zlib1g-dev libbz2-dev libboost-dev libboost-thread-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev -y
pokud ještě nemáte mysql-server tak:
apt-get install mysql-server -y
#!/bin/bash #Automaticky skript ke stazeni obsahu gitu ci zdrojaku #do promenne cesta si nastavte cestu, do ktere to stahne core z gitu nebo ze zipu. #priklad pouziti cesta=/home/adminmirra/
cesta=$HOME
# kam se pouziva ve funkci patchuj kam=$HOME/TrinityCore*
#jak chcete, aby se jmenoval adresar po rozbaleni (pro snazsi identifikaci kompilacnim skriptem bez ohledu na to, odkud to stahujete) cilovy_adresar="TrinityCore-master"
function rozhodni {
#promenna odkud obsahuje http odkaz ke stazeni zdrojaku v .zip souboru
odkud=$(cat odkud.txt)
#promenna $odkud obsahuje http:// odkaz, ktery jste si hodili do souboru odkud.txt
echo $odkud
#adresa gitu (pokud chcete naklonovat obsah repozitare) git=$(cat git.txt) echo $git cd ~
#pokud existuje git.txt tak to stahne obsah repozitare a skompiluje if [ -e $cesta/git.txt ] ; then cd cd $cesta echo "stahuji obsah GITu" ; git clone $git
#format gitu se do souboru git.txt obvykle zadava ve #formatu https://bitbucket.org/jmeno_uzivatele_na_bitbucketu/jmeno_repozitare adresar=$(cat git.txt |cut -f5 -d/) mkdir $cilovy_adresar mv $adresar/* $cilovy_adresar/
#Pokud je http adresa v odkud.txt tak to stahne a zacne kompilovat. elif [ -e $cesta/odkud.txt ] ; then cd ~ cd $cesta echo "git.txt nenastaven, stahuji zdrojaky z odkud.txt" wget -O odkud.zip $odkud unzip odkud.zip cd odkud
else echo "Ani git.txt ani odkud.txt nenastaveny, nemam co stahovat ke kompilaci!" fi } rozhodni
Takhle nějak může vypadat naprosto primitivní skript, který Vám stáhne buď z gitu nebo z z kteréhokoliv http:// odkazu, kam si to upnete, Vaše zdrojáky na server. výhody skriptu: – primitivní – využívá rychlost linky serveru, nemusíte nic uploadovat na server od Vás, takže to server stáhne za Vás – skript si předpřipraví stažený archív/repozitář do přednastaveného formátu, jaký vy si určíte, v mém případě do TrinityCore-master, pro „standardizovanou“ přípravu pro kompilační skript. Takže jakoukoliv revizi stáhnete z kteréhokoliv repozitáře, vždycky to rozbalí do adresáře, jak si vy sami definujete.
Jednoduchý skript ke kompilaci
Je to opět primitivní skript, který je upraven pro automatizovanou kompilaci na našich serverech. Je však natolik snadno upravitelný, že si můžete házet errorové výpisy přímo na Váš webový server, anižbyste museli cokoliv měnit.
#!/bin/bash
#do promenne cesta je nastaven home adresar aktualniho uzivatele s
# adresarem TrinityCore-master, ktery rozbalil predchozi skript
cesta=$HOME/TrinityCore-master
cd $cesta
cd ..
mkdir server
#funkce ke kompilaci
function kompilace {
# promenna kam se pouziva ve funkci patchuj
kam=$cesta
cd $kam
#pokud neexistuje adresar build tak:
if [ ! -d "build" ]; then
mkdir build
fi
#vytvorime prazdny soubor error.txt na errory a pridame mu prava k zapisu
#
touch error.txt
chmod 774 error.txt
#vytvorime prazdny soubor, kam se budou logovat vysledky kompilace
touch kompilace.txt
chmod 775 kompilace.txt
cd build
#cmakujeme, parametry si muzete zmenit dle potreby
cmake ../ -DPREFIX=$HOME/server -DCMAKE_C_FLAGS="-msse -msse2 -msse3 -msse4a" -DCMAKE_CXX_FLAGS="-msse -msse2 -msse3 -msse4a" -DTOOLS=1 1>~/kompilace.txt 2>~/error.txt
#takhle to nejak vypada defaultne-> cmake ../ -DPREFIX=~/server -DTOOLS=1
#pokud mate 4 nebo 8 jadrovy procesor, upravte na make -j4 nebo -j8
# namisto -j2
make -j2 1>>~/kompilace.txt 2>>~/error.txt
pwd
make install 1>>~/kompilace.txt 2>>~/error.txt
pwd
echo "KOMPILACE DOKONCENA! !"
}
function patchuj {
cestakpatchi=/$HOME/patch
for i in $( ls $cestakpatchi ); do
echo "Aplikuji Patch:" $i
cp $cestakpatchi/$i $kam
cd $kam
touch patchovani.txt
git apply $i 2>>patchovani.txt
done
}
#funkce patchuj se nespusti, protoze na cistem testovacim serveru
# nepouzivam patche do core.
# patchuj
kompilace
Skript si hezky spustím, všechno to udělá za mě. Pokud by byly dotazy, nebojte se zeptat, případně dovysvětlím. Souhlasím s tím, že skripty rozhodně nejsou optimální a taky, že nejsou nijak profi, ale na to moje domácí žvýkání mi to bohatě stačí, protože to dělá, to co po tom chci. A aspoň netrávím dlouhé noci nad tím, abych to udělal blbuvzdorné a promakané, když jen chci, aby to dělalo to minimum, co po tom požaduji. Děkuji a přeji co nejméně chyb při kompilaci MIrra
Zveřejňování, kopírování, či používání těchto zdrojových kódů jinde než na 3serveru, je zakázáno bez písemného souhlasu autora.
