18th mai 2010
Script para baixar arquivos do SVN e gerar .zip automaticamente
Depois de zilhões de meses fazendo isso manualmente aqui na agência, resolvi me aventurar nesse misterioso e nada mágico mundo do shell script. Até que não achei complexo.
Não vou me dar ao trabalho – aliás, não o faço ultimamente nos meus últimos posts… ando sem paciência – de explicar linha a linha. O que o script faz é receber por parâmetro o caminho do SVN para fazer checkout e o caminho da pasta onde deve ser gerado o .zip. Com isso, ele se conecta ao SVN, faz checkout, gera o .zip e apaga a pasta com os arquivos.
Obs.: não esqueçam que isso só funciona em unix e que o arquivo gerado com esse conteúdo deve ter permissão 777 para ser executado.
#! /bin/sh
clear
svnpath=$1
rootfolder=$2
subfolder=$rootfolder”sub/”
svn checkout $svnpath $subfolder
sudo find $rootfolder -iname “.svn” -exec rm -fr {} \;
cd $subfolder
zip -r package.zip *
mv package.zip $rootfolder
rm -rf $subfolder
Exemplo de chamada (imaginando que foi gerado um arquivo com o nome package.sh):
./package.sh http://myserver/myclient/svn/trunk/ /home/mmc/myfolder/
Depois de zilhões de meses fazendo isso manualmente aqui na agência, resolvi me aventurar nesse misterioso e nada mágico mundo do shell script. Até que não achei complexo.
Não vou me dar ao trabalho – aliás, não o faço ultimamente nos meus últimos posts… ando sem paciência – de explicar linha a linha. O que o script faz é receber por parâmetro o caminho do SVN para fazer checkout e o caminho da pasta onde deve ser gerado o .zip. Com isso, ele se conecta ao SVN, faz checkout, gera o .zip e apaga a pasta com os arquivos.
Obs.: não esqueçam que isso só funciona em unix e que o arquivo gerado com esse conteúdo deve ter permissão 777 para ser executado.
#! /bin/sh
clear
svnpath=$1
rootfolder=$2
subfolder=$rootfolder”sub/”
svn checkout $svnpath $subfolder
sudo find $rootfolder -iname “.svn” -exec rm -fr {} \;
cd $subfolder
zip -r package.zip *
mv package.zip $rootfolder
rm -rf $subfolder
Exemplo de chamada (imaginando que foi gerado um arquivo com o nome package.sh):
./package.sh http://myserver/myclient/svn/trunk/ /home/mmc/myfolder/
Posted by Chris under
linux
2 Comments »