deixando os repositórios atualizados
Para quem desenvolve ou acompanha um projeto livre e precisa estar sempre atualizado com os últimos commits segue um script que ajuda bastante no processo, por enquanto só deve funcionar no git e no subversion.
Se você tem uma pasta apenas para os repositórios como eu ( /home/mulatinho/repo) basta adicionar o script abaixo e definir as variáveis $subdir (caso tenha subdiretórios com repositórios) e a $nodir (caso não queira incluir arquivos e/ou diretórios na atualização). Segue os exemplos:
$ cat updaterepo.sh
#!/bin/bash
basedir=${HOME}/repo
subdir="github"
nodir="codigolivre.org.br|update.sh"
function do_update()
{
echo "entrando em '${1}'.."
cd ${1} 2>/dev/null
repositorio=`echo ${1} | awk -F'/' '{print $NF}'`
if git status >/dev/null 2>&1;
then
echo "atualizando git repositorio '${repositorio}'"
git pull
elif svn status | egrep -i 'not a working copy' >/dev/null 2>&1;
then
echo "atualizando svn repositorio '${repositorio}'"
svn update
else
echo "'${repositorio}' nao eh um repositorio git ou svn"
fi
echo
echo
}
#principal
for workdir in ${basedir}/*;
do
if echo ${workdir} | egrep "${subdir}" >/dev/null 2>&1
then
rdir=${workdir}
for workdir in ${rdir}/*;
do
do_update "${workdir}"
done
elif echo ${workdir} | egrep "${nodir}" >/dev/null 2>&1
then
continue
else
do_update "${workdir}"
fi
done
cd ${basedir}
Rodando o script e vendo o resultado de todos os repositórios listados em (${HOME}/repo) sendo atualizados!
$ ./update.sh
entrando em '/home/mulatinho/repo/gcc'..
atualizando git repositorio 'gcc'
remote: Counting objects: 91, done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 42 (delta 34), reused 0 (delta 0)
Unpacking objects: 100% (42/42), done.
From git://gcc.gnu.org/git/gcc
3cef9c1..23c6c8a master -> origin/master
0afe1df..03e935b gcc-4_7-branch -> origin/gcc-4_7-branch
fe4904a..4ef7667 gcc-4_8-branch -> origin/gcc-4_8-branch
3cef9c1..23c6c8a trunk -> origin/trunk
Updating 3cef9c1..23c6c8a
Fast-forward
gcc/ChangeLog | 28 +++++++++++++
gcc/DATESTAMP | 2 +-
gcc/config/rs6000/linux64.h | 30 +++++++-------
gcc/config/rs6000/rs6000.md | 34 ++++++++++------
gcc/config/rs6000/sysv4.h | 49 +++++++++++------------
gcc/config/sh/iterators.md | 3 ++
gcc/config/sh/predicates.md | 28 +++++++++++++
gcc/config/sh/sh.c | 16 ++++++++
gcc/config/sh/sh.md | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/testsuite/ChangeLog | 7 ++++
gcc/testsuite/gcc.target/sh/pr55303-1.c | 87 ++++++++++++++++++++++++++++++++++++++++
gcc/testsuite/gcc.target/sh/pr55303-2.c | 35 ++++++++++++++++
gcc/testsuite/gcc.target/sh/pr55303-3.c | 15 +++++++
13 files changed, 417 insertions(+), 51 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/sh/pr55303-1.c
create mode 100644 gcc/testsuite/gcc.target/sh/pr55303-2.c
create mode 100644 gcc/testsuite/gcc.target/sh/pr55303-3.c
13 files changed, 417 insertions(+), 51 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/sh/pr55303-1.c
create mode 100644 gcc/testsuite/gcc.target/sh/pr55303-2.c
create mode 100644 gcc/testsuite/gcc.target/sh/pr55303-3.c
entrando em '/home/mulatinho/repo/geany'..
atualizando git repositorio 'geany'
Already up-to-date.
entrando em '/home/mulatinho/repo/github/bacuri'..
atualizando git repositorio 'bacuri'
Already up-to-date.
entrando em '/home/mulatinho/repo/github/docs'..
atualizando git repositorio 'docs'
Already up-to-date.
entrando em '/home/mulatinho/repo/github/pub'..
atualizando git repositorio 'pub'
Already up-to-date.
entrando em '/home/mulatinho/repo/github/sfm'..
atualizando git repositorio 'sfm'
Already up-to-date.
entrando em '/home/mulatinho/repo/gus-pe'..
atualizando git repositorio 'gus-pe'
Updating '.':
A teste
A teste/teste.txt
entrando em '/home/mulatinho/repo/keymouse'..
atualizando git repositorio 'keymouse'
Already up-to-date.
entrando em '/home/mulatinho/repo/linux-stable'..
atualizando git repositorio 'linux-stable'
Already up-to-date.
entrando em '/home/mulatinho/repo/slapt-get'..
updating git repository 'slapt-get'
From http://software.jaos.org/git/slapt-get
9617037..d1a5737 master -> origin/master
* [new branch] slack13.37 -> origin/slack13.37
Updating 9617037..d1a5737
Fast-forward
ChangeLog | 6 +
default.slapt-getrc.i386 | 10 +-
default.slapt-getrc.x86_64 | 10 +-
example.slapt-getrc | 116 ++++++++-------
example.slapt-getrc.i386 | 122 +++++++--------
example.slapt-getrc.x86_64 | 124 ++++++++--------
po/bg.po | 78 ++--------
po/cs.po | 71 ++-------
po/{cz.po => da.po} | 350 +++++++++++++++++++------------------------
po/de.po | 86 ++---------
po/el.po | 105 ++++---------
po/es.po | 96 +++---------
po/es_AR.po | 95 +++---------
po/es_ES.po | 104 +++----------
po/fr.po | 303 +++++++++++++++----------------------
po/{en.po => he.po} | 370 +++++++++++++++++++++-------------------------
po/hu.po | 60 ++++----
po/id.po | 82 ++--------
po/it.po | 78 ++--------
po/ja.po | 84 ++---------
po/nl.po | 76 ++--------
po/no.po | 78 ++--------
po/pl.po | 83 ++---------
po/pt.po | 607 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
po/pt_BR.po | 95 +++---------
po/pt_PT.po | 85 ++---------
po/ro.po | 77 ++--------
po/ru.po | 44 ++----
po/sk.po | 71 ++-------
po/sl.po | 80 ++--------
po/sv.po | 136 ++++++-----------
po/tr.po | 79 ++--------
po/uk.po | 150 ++++++-------------
po/vi.po | 80 ++--------
po/zh_CN.po | 66 ++-------
src/action.c | 2 +-
src/main.c | 1 +
37 files changed, 1678 insertions(+), 2482 deletions(-)
rename po/{cz.po => da.po} (51%)
rename po/{en.po => he.po} (52%)
create mode 100644 po/pt.po
entrando em '/home/mulatinho/repo/xf86-video-intel'..
atualizando git repositorio 'xf86-video-intel'
Already up-to-date.
entrando em '/home/mulatinho/repo/xfce4-notes-plugin'..
atualizando git repositorio 'xfce4-notes-plugin'
Already up-to-date.
Okay, mas eu tenho que ficar rodando esse lance toda hora!? Não!
$ crontab -e
0 * * * * /home/mulatinho/repo/updaterepo.sh
Pronto! Agora a toda hora que passa todos os seus repositórios serão atualizados sem bronca! É isso, continue acompanhando!