Skip to content

br-monteiro/finder-py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Finder.py Unit Tests

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

Dependências

  • Python 3.5.2+

Instalação

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 arquivo finder.py.

Usando a ferramenta

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.

Argumentos

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 atual
e 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 termo
apenas 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 termo
apenas 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 apenas
quando 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 quando
a 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 arquivos
com 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 a
extensã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

Tests

Para rodar os tests, basta executar o comando =)

python3 -m unittest -v

Créditos

Este projeto foi desenvolvido por Edson B S Monteiro - bruno.monteirodg@gmail.com em uma distribuição Linux. \o/

LAUS DEO ∴

About

A simple tool to find your messes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published