Gustavo, se trata de um script de automação para as atualizações constantes do needwork.txt. Ele está dividido em duas partes (e eu pretendo mudar isso): a primeira é uma modificação no www-cvs que cria uma pasta de trabalho pra onde são copiados os arquivos a serem atualizados; muda seus nomes, cria um arquivo .list contendo entradas do tipo "portuguese/foo/bar/foobar.wml x.xx > y.yy" e abre o vi direto com os arquivos. A outra parte realiza o envio dos emails no formato acordado: Assunto: [wml] portuguese/foo/bar/foobar.wml x.xx > y.yy Texto: Algumas palavras pra não ficar tão impessoal :) Arquivo anexo: portuguese/foo/bar/foobar.wml Do jeito que estão eles só são interessantes pra quem vai traduzir todo o needwork de uma vez, que é o que eu costumo fazer. Mas algumas modificações podem torná-los ferramentas importantes para o projeto. Há ainda os arquivos wml.vim e needwork.txt.vim que possuem realce de sintaxe para os wml e needwork, respectivamente. O primeiro contém, além da sintaxe, funções de busca e realçe de busca, largura de linha e coisas úteis pra traduções completas de arquivos (que eu criei pra manter minha sanidade mental), o outro eu ainda não consegui tornar funcional, mas tá quase lá. De qualquer forma, segue anexo estes arquivos, pra quem quiser fuçãr/usar/mexer. Alem deles vai o vimrc. -- Rodrigo Torres ID: 082BC137
#!/bin/bash export CVSROOT=:pserver:anonymous@cvs.debian.org:/cvs/webwml trap 'echo Recebido Crtl-C, saindo.; exit 0 ' 2 test -f ~/.cvspass || touch ~/.cvspass cvs login if [ "$1" = "init" ]; then cvs co -l webwml cvs co -l webwml/Perl cvs co -l webwml/Perl/Local cvs co -l webwml/Perl/Webwml cvs co webwml/english cvs co webwml/portuguese else cvs -q update -P -d -l webwml cvs -q update -P -d -l webwml/Perl cvs -q update -P -d -l webwml/Perl/Local cvs -q update -P -d -l webwml/Perl/Webwml cvs -q update -P -d webwml/english cvs -q update -P -d webwml/portuguese fi cd webwml ./check_trans.pl -d > ../update.txt cd ../ cat update.txt | grep -v ^Missing > needwork.txt #grep -B2 '===' needwork.txt # Esta parte cuidará de criar no diretório mywork a pasta # com a data atual e copiará para ela os arquivos pedindo # atualização # TODO fazer esse negócio abrir o Vim logo em bg com vi -o ../needwork # e o primeiro arquivo da lista. Pra que eu só preciso dar um fg pra # pra chamá-lo de volta. diretorio_de_trabalho="mywork/`date +%m%d-%a`/" mkdir --parents ${diretorio_de_trabalho} caminho_arquivos=`grep ^NeedToUpdate needwork.txt |\ sed -e 's/^NeedToUpdate \(.*\.wml\) from version \(.*\) to version \([^ ]*\).*/\1 \2 > \3/'|\ tee ${diretorio_de_trabalho}.list |\ sed -e 's/\(.*\.wml\).*/\1/'` nome_arquivos=`echo ${caminho_arquivos} | tr '/' '.'` cd webwml item=1 for i in ${caminho_arquivos} do cp -a $i ../${diretorio_de_trabalho}`echo ${nome_arquivos} | cut -d ' ' -f $item` item=$[$item + 1] done cd ../${diretorio_de_trabalho} vi -o ../../needwork.txt *
#!/bin/bash # vim:tw=80:ts=4 # enviador de emails para a lista debian-l10n-portuguese@lists.debian.org # para cada item no arquivo .list da pasta de trabalho envia um e-mail para a lista # usando o mutt na linha de comando # TODO Receber o diretório ou arquivos a enviar como argumentos # TODO Receber o email como argumento, mas tendo o l10n como default # TODO Criar uma marcação "enviado" no .list para evitar envios duplos # e checar antes de enviar trap 'echo Recebido Crtl-C, saindo.; exit 0 ' 2 arquivos=`ls [!.]* | sort` assuntos_completo=`cat .list | sort | sed -e 's/$/;/' -e 's/portuguese\///'` contador=1 # o bendito smtp.web.de só recebe se o imap.web.de tiver sido acessado no # mesmo dia. É só para garantir nice -n 19 fetchmail -u rodrigo-torres -B 1 -s -k imap.web.de & for i in ${arquivos} do nome_arquivo=${i} assunto=`echo ${assuntos_completo} | cut -d ';' -f $contador` echo -n enviando $assunto: mutt -a $nome_arquivo -s "[wml] ${assunto}" $email <<\EOF Automação é melhor que andar de bicicleta. Leva um tempo pra pegar o jeito, mas depois é só alegria. Favor desconsiderar quaisquer mensagens duplicadas; ainda estou aparando arestas. EOF echo ' enviada' contador=$[$contador + 1] #echo '$contador': $contador #debug #echo '$nome_arquivo': $nome_arquivo #debug #echo '$assunto': $assunto #debug done
syntax on set tw=78 tabstop=4 joinspaces wrap ruler " Opções de busca set hls is ic scs magic map <F5> {i**Traduzido<esc>}o<esc>ki**<cr> map ,mt /^\t\+\\|\s\+$<cr> syn match Bloco_traduzido '\*\*Traduzido\n\(.*[^*]\n\)*\*\*' map ,bt :hi Bloco_traduzido ctermfg=green ctermbg=black<cr> map ,nbt :hi clear Bloco_traduzido<cr> "/\*\*Traduzido\n\(.*[^*]\n\)*\*\* hi Search ctermbg=lightgreen ctermfg=black hi IncSearch ctermbg=black ctermfg=cyan " carregar as syntaxe de wml, que já vem com o Vim set filetype=wml
" vim:tw=78:ts=4 " needwork.txt.vim syntax match diff_mais "^+.*" syntax match diff_menos "^-.*" syntax match cabeçalho "^NeedToUpdate\(.*\n\)\{2\}" syntax match info "^==\(.*\n\)\{7\}" highlight diff_mais ctermfg=black ctermbg=gray highlight diff_menos ctermfg=gray ctermbg=blue highlight cabeçalho ctermfg=white ctermbg=black highlight info ctermfg=black ctermbg=black syntax on
au BufNewFile,BufRead \(*.\)*.wml source ~/.wml.vim au BufRead needwork.txt source ~/.needwork.txt.vim set visualbell syntax on
Attachment:
signature.asc
Description: Digital signature