[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

sobre o script



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


Reply to: