patch pro zoneminder

Eu uso o ZoneMinder aqui em casa, que é um software para CFTV (Circuito Fechado de Televisão). Tempos atrás eu bloguei falando do zoneminder. Hoje, quando atualizei para versão 1.24.1-1 notei a seguinte mensagem:

Warning: Cannot modify header information - headers already sent by
(output started at /usr/share/zoneminder/lang/pt_br.php:751) in
/usr/share/zoneminder/includes/functions.php on line 97

Na hora eu já imaginei o que era. Abri o arquivo "/usr/share/zoneminder/lang/pt_br.php" e lá estava, uma linha em branco aṕos a tag ?>, que é a tag que fecha comandos PHP. Olhei os outros arquivos de línguas e alguns deles também possuíam a linha em branco. Então, lá vou eu fazer um patch pra corrigir esse erro. Pensei um pouco, fiz alguns testes e não consegui. Como sou preguiçoso fui logo perguntar pra alguns amigos que também não puderam me dar uma solução na hora. Daí, evitei a fadiga e encontrei o comando abaixo:
sed '${/^$/d}' arquivo

Esse comando só removia uma única linha, eu tinha casos mais de uma linha... Procurei mais e achei um exemplo bem legal:
sed -e :a -e '/^\n*$/{$d;N;ba' -e '}' arquivo

Com esse comando, era só eu fazer um loop nos arquivos de línguas, gerar um novo arquivo com as modificações, executar o diff para comparar as mudanças e salvar num arquivo para enviar pros mantenedores do zoneminder. Acabei escrevendo o script abaixo:
#!/bin/bash

files=$( find . -name "*.php" )

# remove as linhas em branco do final do arquivo e cria um arquivo temporário
for file in $files; do
sed -e :a -e '/^\n*$/{$d;N;ba' -e '}' $file > "$file.new"
done

# faz a comparação entre o arquivo antigo e novo e salva
for file in $files; do
diff -burN $file "$file.new" >> patch.metal
done

# remove os arquivos temporários
find . -name "*.new" | xargs rm

Aṕos executar o script acima, abri o arquivo gerado, o "patch.metal" e fui conferir. Aparentemente tudo certo, agora vou abrir o bug e torcer pra ele não ficar mais de um ano pra ser fechado.

UPDATE:

Bug reportado, #531910, agora vamo ver...

This entry was posted on Quinta, Junho 04th, 2009 at 19:47 and is filed under default, desenvolvimento. You can follow any responses to this entry through the RSS or Atom feed. You can (um) comentando...">leave a response, or trackback from your own site.

Trackback link:

Favor ativar Javascript para gerar uma URL de trackback

No trackbacks


Coda, coda, coda!


  
Relembrar suas informações pessoais?

/ Textile


 

  (Registrar seu Nome de Usuário/Login)

Notificar:
Ocultar email:

Aviso: Todas as marcações HTML, exceto <b> and <i> serão removidas do seu comentário. Você pode escrever links simplesmente digitando a URL ou endereço de e-mail.

Categories

Fotos:

www.flickr.com

Tags