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.gitApó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.shIMPORTANTE: 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 -vEste projeto foi desenvolvido por Edson B S Monteiro - bruno.monteirodg@gmail.com em uma distribuição Linux. \o/