bash skript – nette, dibi a texy updater

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
edke
Člen | 198
+
0
-

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 | 8147
+
0
-

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
+
0
-

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 | 8147
+
0
-

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
+
0
-

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
+
0
-

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.

edke
Člen | 198
+
0
-

David Grudl wrote:

dibiurl=https://files.dibiphp.com/latest.zip
texyurl=https://files.texy.info/latest.zip
netteurl=https://files.nette.org/latest.zip

Takze uvedene aliasy su zapracovane, skript je opraveny a k dispozicii na stiahnutie, plati povodny link.

romansklenar
Člen | 655
+
0
-

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
+
0
-

romansklenar wrote:

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.

Hm, to slo tiez, vyskusam.