Um simples CLI
para ajudar a encontrar aquele maldito texto que só Deus sabe onde está =)
Esta ferramenta foi desenvolvida com Python3, Coca-Cola e Cup Noodles
- Python 3.5.2+
Para instalar a ferramenta na sua máquina, basta realizar o clone deste repositório.
Abaixo é possível visualizar o comando de clone do repositório:
cd ~/ && git clone git@github.com:br-monteiro/finder-py.git
Após clonar o projeto, entre no diretório finder-py
e execute o arquivo de setup
.
Abaixo é possível visualizar o comando de execução do arquivo de setup:
cd ~/finder-py && bash ./setup.sh
IMPORTANTE: Será solicitado a senha de root do Sistema Operacional, mas não se preocupe, esta solicitação servirá apenas para setar permissão de execução (
+x
) e criação do link simbólico (ln -s
) para o arquivofinder.py
.
O uso desta ferramenta é bem simples, e consiste em procurar um termo específico nos arquivos do diretóio atual (ou informado por argument).
O único comando obrigatório é o by=<termo>
.
finder by=texto
É possível melhorar o resultado de busca passando alguns argumentos especiais para o CLI
.
IMPORTANTE: A busca será realizada em arquivos e diretórios com permissão de leitura. Caso contrário, o arquivo/diretório será ignorado no processo.
Nome | Tipo | Exemplo | Descrição |
---|---|---|---|
by | String, RegEx | by=level-3 by="abc 123" by=level-\\d by="fn(value) {" by="fn(\$value) {" |
Informa o termo a ser buscado nos arquivos. |
-raw | --- | -raw | Informa ao CLI para considerar o valor bruto do argumeto by.Dessa forma, por exemplo, o termo de busca "fn(value) {" não é tratado como uma RegEx .É importante ter cuidado com o caractere $ pois o mesmo é interpretado pelo terminal como uma variável de ambiente.Para considerá-lo, é necessário escapar desta forma \$ . |
path | String | path=/home/edsonmonteiro/ | Informa o path em que o CLI realizará busca.Por padrão, a busca será realizada no diretório atual. |
-recursive -r |
--- | -recursive -r |
Informa ao CLI para realizar a busca no diretório atuale subdiretórios. Por padrão, o nível de recursividade é 3. |
rl recursive-level |
Integer | rl=4 recursive-level=5 |
Altera o nível máximo de subdiretórios em que o CLI realizará a busca. |
fm file-match |
RegEx | fm="template-*" file-match=\\d-abc |
Informa ao CLI para realizar a busca do termoapenas em arquivos onde a RegEx é satisfeita usando como base o nome do arquivo. |
fdm file-dont-match |
RegEx | fdm=".*min\\.js" file-match=\\d-abc |
Informa ao CLI para ignorar a busca do termoapenas em arquivos que a RegEx for satisfeita usando como base o nome do arquivo. |
pm path-match |
RegEx | pm="src|public" path-match=\\d-abc |
Informa ao CLI para realizar a busca do termo apenasquando a RegEx for satisfeita usando como base o path completo do arquivo/diretório. |
pdm path-dont-match |
RegEx | pdm="node_modules|dist" path-dont-match=node_modules path-dont-match="node_modules|dist" |
Informa ao CLI para ignorar a busca do termo quandoa RegEx for satisfeita usando como base o path completo do arquivo/diretório. |
oe only-extension |
String | oe=php,js only-extension=js only-extension=js,py |
Informa ao CLI para realizar a busca apenas em arquivoscom a extensão informada. |
ee except-extension |
String | ee=json,md except-extension=md except-extension=json,java |
Informa ao CLI para ignorar a busca em arquivos com aextensão informada. |
-quiet -q |
--- | -quiet -q |
Informa ao CLI para não exibir as informações de tempo de execução, arquivos consultados, quantidade de linhas com o termo de busca e quantidade de arquivos ou diretórios pulados no processo. |
--help | --- | --help | Mostra uma descrição dos comandos suportados e alguns exemplos no terminal. |
A principal diferença entre [fm, fdm, file-match, file-dont-match] e [pm, pdm, path-match, path-dont-match] é que file-* cosidera apenas o nome dos arquivos e path-* considera o path completo do arquivo ou diretório
Para rodar os tests, basta executar o comando =)
python3 -m unittest -v
Este projeto foi desenvolvido por Edson B S Monteiro - bruno.monteirodg@gmail.com em uma distribuição Linux. \o/