Shell scripts for refactoring
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
LICENCE
README.md
install.sh

README.md

#REFACTORING SCRIPTS

Coleção de scripts escritos em shell para refatoração de código.

##INSTALANDO

Para instalar, basta executar no terminal:

$ ./install.sh

##ATUALIZANDO

Para atualizar para uma versão mais nova, basta fazer o download executar no terminal:

$ ./install.sh

##SCRIPTS

###change-file-name

Busca recursivamente em um diretório por arquivos que contenham uma palavra em seu nome e a substitui por outra. O programa diferência maiúsculas e minúsculas.

####Parâmetros

-f, --file      Diretório a partir do qual a busca será feita recursivamente.

-o, --old-word  Palavra que será substituída no nome dos arquivos.

-n, --new-word  Palavra que substituirá a palavra informada no parâmetro -n.

####Opções

-q, --quiet     Executa em modo silencioso, não imprimindo na tela os arquivos
                que foram alterados.

-h, --help      Mostra esta tela de ajuda e sai
-v, --version   Mostra a versão do programa e sai

####Exemplos

$ ls ~/diretorio
fulanoAntiga.txt   ANTIGAblabla.sh   testeANTIGAteste.rb

$ change-file-name -f ~/diretorio -o ANTIGA -n NOVA

$ ls LOCAL
fulanoAntiga.txt   NOVAblabla.sh   testeNOVAteste.rb

###find-replace

Busca em um arquivo, ou recursivamente em todos os arquivos de um diretório, por uma palavra (ou expressão regular) e a substitui por outra; Cria arquivos .backup para posteriormente poder desfazer as mudanças (através do comando undo) ou serem removidos (através do comando clean).

####Comandos:

clean D         Remove os arquivos .backup criados em D e seus sub-diretórios.

undo D          Desfaz as mudanças realizadas em D.

####Parâmetros

-f, --file      Arquivo ou diretório no qual a busca será feita. Sendo o
                argumento um diretório, a busca será recursiva.

-o, --old-word  Palavra que será substituída nos arquivos.

-n, --new-word  Palavra que substituirá a palavra informada no parâmetro -n.

####Opções

--exclude-file  Exclui da busca arquivos cujos nomes coincidam com o argumento
                informado. O argumento pode conter * para generalizações,
                porém desta forma, deve ser passado entre aspas.

--exclude-dir   Exclui da busca recursiva diretórios cujos nomes coincidam com
                o argumento informado. O argumento pode conter * para
                generalizações, porém desta forma, deve ser passado entre
                aspas.

-q, --quiet     Executa em modo silencioso, não imprimindo na tela os arquivos
                que foram alterados.

-h, --help      Mostra esta tela de ajuda e sai
-v, --version   Mostra a versão do programa e sai

####Exemplos

$ find-replace -f diretório -o substituída -n substituta

$ find-replace -f diretório -o "^Hugo.*Vieira" -n Hugo

$ find-replace -f ~/sgtran -o viagems -n viagens -ed ".git"

$ find-replace clean ~/sgtran/

$ find-replace -f ~/sgtran/app/ -o Funcionário -n Solicitante -ef view/show.erb

$ find-replace undo ~/sgtran/app/

###html-characters

Busca em um arquivo, ou recursivamente em todos os arquivos de um diretório, por vogais acentuadas e cedilha e as substitui por seu nome ou número equivalente em HTML. Com a opção --inverse, faz o contrário, substituindo os nomes (ou números) em HTML pelos caracteres correspondentes.

Os caracteres substituídos são:

À Á Â Ã Ç É Ê Í Ó Ô Õ Ú à á â ã ç é ê í ó ô õ ú

Tendo como exemplo o caractere 'á', os números equivalentes em HTML seguem o formato á e os nomes equivalentes em HTML seguem o formato á

####Parâmetros

-f, --file            Arquivo ou diretório no qual a busca será feita. Sendo o
                      argumento um diretório, a busca será recursiva.

####Opções

-ef, --exclude-file   Exclui da busca arquivos cujos nomes coincidam com o
                      argumento informado. O argumento pode conter * para
                      generalizações, porém desta forma, deve ser passado
                      entre aspas.

-ed, --exclude-dir    Exclui da busca recursiva diretórios cujos nomes
                      coincidam com o argumento informado. O argumento pode
                      conter * para generalizações, porém desta forma, deve
                      ser passado entre aspas.

--no-backup           Não cria os arquivos de backup.

-i, --inverse         Faz o inverso, substituindo os códigos em HTML pelos
                      caracteres correspondentes.

-n, --numero          Substitui os caracteres por seu numero correspondente em
                      HTML.

-q, --quiet           Executa em modo silencioso, não imprimindo na tela os
                      arquivos que foram alterados.

-h, --help            Mostra esta tela de ajuda e sai
-v, --version         Mostra a versão do programa e sai

####Exemplos

$ html-characters -f diretório

$ html-characters -f ~/index.html -ed ".git"

$ html-characters --numero -f ~/sgtran/app/ -ef view/show.erb

###remove-temps

Busca recursivamente em um diretório por arquivos temporários e os elimina.

####Parâmetros

-f, --file      Diretório a partir do qual a busca será feita recursivamente.

####Opções

-q, --quiet     Executa em modo silencioso, não imprimindo na tela os arquivos
                que foram removidos.

-g, --git       Executa o comando "git rm" para todos os arquivos temporários.
                Para utilizar esta opção, deve-se estar na diretório root do
                projeto e os arquivos ainda devem existir.

-h, --help      Mostra esta tela de ajuda e sai
-v, --version   Mostra a versão do programa e sai

####Exemplos

$ ls ~/sgtran/app/models
usuario.rb usuario.rb~ usuario_session.rb usuario_session.rb~

$ remove-temps -f ~/sgtran/app/models

$ ls ~/sgtran/app/models
usuario.rb usuario_session.rb

Usando a opção -g, --git

$ git status
# On branch master
nothing to commit (working directory clean)

$ remove-temps -f . -g

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	deleted:    app/controllers/application_controller.rb~
#	deleted:    app/controllers/usuario_sessions_controller.rb~

##AUTOR

Hugo Henriques Maia Vieira hugomaiavieira@gmail.com