domingo, 15 de novembro de 2009

Refactoring scripts em shell

Mês passado estava trabalhando em um sistema que estou desenvolvendo em Rails com amigos da faculdade quando um deles viu que tinha feito uma merda. Ele tinha criado um modelo "viagem" com o scaffolding mas esqueceu de colocar o plural correto no inflections. Assim o scaffolding criou vários arquivos que continham no nome as palavras "viagems" ou "Viagems" e vários arquivos que tinham em seu conteúdo essas mesmas palavras. Contudo ele já havia programado bastante coisa depois disso e ficaria ruim retornar ao commit anterior no git.

Ele já ia alterar tudo manualmente quando falei: Calma aí! Vou criar um script para isso!

Era uma boa oportunidade, já que estou aprendendo a programar em shell. Em pouco tempo criei dois scripts básicos: um para modificar os nomes dos arquivos e outro para modificar o conteúdo. Logo pensei em montar um conjunto de scripts para refactoring já que uso o combo Gedit + Terminal para programar. Daí essa semana comecei a ler o livro Shell Script Professional do Aurélio Marinho, que é muito bom livro por sinal, e dei uma profissionalizada nos scripts para colocar em prática meus aprendizados.

O resultado está no projeto Refactoring-scripts github. Por enquanto são dois:
  • find-replace.sh - Busca em um arquivo, ou recursivamente em todos os arquivos de um diretório, por uma palavra e a substitui por outra.
  • change-file-name.sh - Busca recursivamente em um diretório por arquivos que contenham uma palavra em seu nome e a substitui por outra.
A pretensão é, além criar outros scripts, cirar um fork para um plugin de refactoring em python para o gedit. Mas isso é coisa para as férias de fim de ano. =)

Nenhum comentário:

Postar um comentário