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

zdroj

#!/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. 

Napsat komentář