Fragmental

8/18/2005

Groooooooooooooooooovy

Você tem que alterar os pacotes no import de 1000 arquivos. Opção? sed, claro.

No meu caso, acho que foi mais rápido escrever este scriptizinho em groovy do que ler as páginas de manual dos pipelines que teria que fazer.

#!/usr/bin/env groovy

new File(this.args[0]).eachFileRecurse(){
input ->
filename = input.getAbsolutePath();
output = new File(filename+".REPLACING");
if(!input.isDirectory() && (input.getName().matches("^.*java\$"))){

println("################# UPDATING FILE ["+ input.getAbsolutePath()+"] ##############################");
input.eachLine{
line -> modified = line.replaceAll(this.args[1], (this.args[2]+"\n"));
output.append(modified)
}
}
input.delete();
output.renameTo(new File(filename));
}



Ele recebe três parâmetros: [0] diretorio onde começar [1] regexp com linha a substituir [2] texto para colocar no lugar. Como sou newbie em Groovy, acho que dá pra melhorar muito...sugestões?

(não o algoritmo em si, eu sei que tá uma merda, mas otimizar script que você vai usar uma vez na vida é um tanto quanto perda de tempo demais para mim, quero saber sintaxe e truques)


 
f