bash skript – nette, dibi a texy updater
- edke
- Člen | 198
Chcel som si usetrit do buducna cas, tak som si napisal skript v bash, ktory stiahne posledne verzie Nette, dibi a texy, rozbali a podla mojich predstav mi ich nakopiruje do pozadovanej adresarovej struktury.
Pouzivam eclipse, mam v nom 2 projekty, docs a share. Share mam v include_path, teda lahko viem vzdy aktualnu verziu pouzivat vo viacerych projektoch. Uvidime ako sa to casom osvedci, kedze starsie projekty mozu mat s novsimi verziami problem. Uvidime.
Struktura:
docs/
dibi/
dibi.examples/
Nette/
Nette.examples/
texy/
texy.examples/
share/
dibi/
dibi.compact.php
Nette/
loader.php
texy/
texy.compact.php
Nasleduje bash skript, ktory ja mam v ~bin/ foldri, s pravom executable. Skript stiahne posledne balicky, rozbali ich do /tmp/nette, zmaze to co mam aktualne v share a docs foldroch a nakopiruje podla mojich predstav najnovsie verzie. Skript isto nie je dokonaly, v bash akurat len zacinam. Ak budete mat nejake tipy, sem s nimi. Samozrejme ak David zmeni nazvy balikov, budem musiet skript modifikovat. Skript je mozne stiahnut v mojom dropboxe.
#!/bin/bash
dibiurl=https://files.dibiphp.com/dibi-0.9.zip
texyurl=https://files.texy.info/texy-2.0-beta2.zip
netteurl=https://files.nette.org/nette-0.8.zip
tmpdir=/tmp/nette
targetshare=/home/kraken/workspace_local/share
targetdocs=/home/kraken/workspace_local/docs
if [ ! -d $targetshare ]
then mkdir $targetshare
fi
if [ -d $tmpdir ]
then
rm -R $tmpdir
else
mkdir $tmpdir
fi
# dibi part
wget -P $tmpdir $dibiurl
dibifilename=`basename "${dibiurl}"`
unzip ${tmpdir}/${dibifilename} -d ${tmpdir}
if [ -d ${targetshare}/dibi ]
then
rm -R ${targetshare}/dibi
fi
mkdir ${targetshare}/dibi
if [ -d ${targetdocs}/dibi ]
then
rm -R ${targetdocs}/dibi
fi
if [ -d ${targetdocs}/dibi.examples ]
then
rm -R ${targetdocs}/dibi.examples
fi
cp ${tmpdir}/`basename ${dibifilename%.*}`/dibi.compact/dibi.compact.php ${targetshare}/dibi/
cp -a ${tmpdir}/`basename ${dibifilename%.*}`/dibi ${targetdocs}/
cp -a ${tmpdir}/`basename ${dibifilename%.*}`/examples/ ${targetdocs}/dibi.examples
# texy part
wget -P $tmpdir $texyurl
texyfilename=`basename "${texyurl}"`
unzip ${tmpdir}/${texyfilename} -d ${tmpdir}
if [ -d ${targetshare}/texy ]
then
rm -R ${targetshare}/texy
fi
mkdir ${targetshare}/texy
if [ -d ${targetdocs}/texy ]
then
rm -R ${targetdocs}/texy
fi
if [ -d ${targetdocs}/texy.examples ]
then
rm -R ${targetdocs}/texy.examples
fi
cp ${tmpdir}/`basename ${texyfilename%.*}`/texy.compact/texy.compact.php ${targetshare}/texy/
cp -a ${tmpdir}/`basename ${texyfilename%.*}`/texy ${targetdocs}/
cp -a ${tmpdir}/`basename ${texyfilename%.*}`/examples/ ${targetdocs}/texy.examples
# Nette part
wget -P $tmpdir $netteurl
nettefilename=`basename "${netteurl}"`
unzip ${tmpdir}/${nettefilename} -d ${tmpdir}
if [ -d ${targetshare}/Nette ]
then
rm -R ${targetshare}/Nette
fi
mkdir ${targetshare}/Nette
if [ -d ${targetdocs}/Nette ]
then
rm -R ${targetdocs}/Nette
fi
if [ -d ${targetdocs}/Nette.examples ]
then
rm -R ${targetdocs}/Nette.examples
fi
cp ${tmpdir}/`basename ${nettefilename%.*}`/Nette.compact/loader.php ${targetshare}/Nette/
cp -a ${tmpdir}/`basename ${nettefilename%.*}`/PHP-5.2/Nette ${targetdocs}/
cp -a ${tmpdir}/`basename ${nettefilename%.*}`/PHP-5.2/examples/ ${targetdocs}/Nette.examples
Editoval edke (15. 3. 2009 12:12)
- David Grudl
- Nette Core | 8218
edke napsal(a):
Samozrejme ak David zmeni nazvy balikov, budem musiet skript modifikovat.
No, tak ja zprovozním aliasy:
dibiurl=https://files.dibiphp.com/latest.zip
texyurl=https://files.texy.info/latest.zip
netteurl=https://files.nette.org/latest.zip
- edke
- Člen | 198
David Grudl wrote:
No, tak ja zprovozním aliasy:
dibiurl=https://files.dibiphp.com/latest.zip texyurl=https://files.texy.info/latest.zip netteurl=https://files.nette.org/latest.zip
To ze existuje alias je super. Uz aj upravujem skript na tento model. Len sa bojim ci sa to bude pacit vsetkym. Mozno by mal existovat alias ale na stranke by mozno mal byt link s nazvom, latest-nette.zip alebo tak ako to bolo predtym. Lahsie sa to potom hlada v download dire. Hlavne ked niekto stahuje vsetko naraz, tak tam bude mat latest.zip, latest(1).zip, latest(2).zip alebo podobne.
- David Grudl
- Nette Core | 8218
edke napsal(a):
To ze existuje alias je super. Uz aj upravujem skript na tento model. Len sa bojim ci sa to bude pacit vsetkym. Mozno by mal existovat alias ale na stranke by mozno mal byt link s nazvom, latest-nette.zip alebo tak ako to bolo predtym. Lahsie sa to potom hlada v download dire. Hlavne ked niekto stahuje vsetko naraz, tak tam bude mat latest.zip, latest(1).zip, latest(2).zip alebo podobne.
Dobrá připomínka, opraveno.
- romansklenar
- Člen | 655
Mě osobně příjdě pohodlnější použití subversion a propojení
pomocí symlinků – zaktualizuješ pouze jednotlivé knihovny v
share
a je vystaráno. Příklad pro několik knihoven:
share/
dibi/
dibi/
dibi.compact/
examples/
Nette/
Nette/
examples/
texy/
texy/
texy.compact/
examples/
ZendFramework/
library/
Zend/
MyNewProject/
app/
document_root/
libs/
dibi --> ../../share/dibi/dibi
Nette --> ../../share/Nette/Nette
texy --> ../../share/texy/texy
Zend --> ../../share/ZendFramework/library/Zend
a napsat skript, který to zaktualizuje co hoďku už není takový problém.
Osobně to dělám ale ručně, kdyby byly v nové verzi úpravy typu
break-compatibility
ať se pak nedivím a neladím zbytečně
nějakou chybu. Ve Win lze vytvářet linky utilitkou Junction.
- edke
- Člen | 198
romansklenar wrote:
share/ dibi/ dibi/ dibi.compact/ examples/ Nette/ Nette/ examples/ texy/ texy/ texy.compact/ examples/ ZendFramework/ library/ Zend/
Na tomto sa mne nepaci, ze je pokope napr. dibi a dibi.compact. Ked potom v eclipse chcem vyhladat definiciu niektorej z metod, funkcie, classu, eclipse mi ponuka vzdy obe varianty, co ma otravuje, chcel som tu compact z tohto uplne vylucit. Naopak do projektu linkujem prave compact verziu.
Prave preto som to rozdelil na dva projekty, jeden mam v eclipse otvoreny a to docs a v nom mi aj eclipse hlada. Naopak druhy v share naozaj aj includujem a to je compact verzia.
- romansklenar
- Člen | 655
edke napsal(a):
Na tomto sa mne nepaci, ze je pokope napr. dibi a dibi.compact.
Když si stáhneš dibi, Nette i texy ze svn tak zjistíš, že jejich
součástí nejsou compakt verze (dibi.compact
i
texy.compact
jsou jen prázdné složky), tudíž se to tam nemotá
(taky používám Eclipse PDT a je to bez problémů). Kompaktní verze bývají
myslím jen u .zip archívů.
No a když dokončíš práci na vývojovém severu (kde máš full verze knihoven, ve kterých se i líp debuguje) na ostrý nahraješ jen kompaktní verze.
- edke
- Člen | 198
romansklenar wrote:
Když si stáhneš dibi, Nette i texy ze svn tak zjistíš, že jejich součástí nejsou compakt verze (
dibi.compact
itexy.compact
jsou jen prázdné složky), tudíž se to tam nemotá (taky používám Eclipse PDT a je to bez problémů). Kompaktní verze bývají myslím jen u .zip archívů.No a když dokončíš práci na vývojovém severu (kde máš full verze knihoven, ve kterých se i líp debuguje) na ostrý nahraješ jen kompaktní verze.
Hm, to slo tiez, vyskusam.