Skip to content

donatocardoso/busca-cli

Repository files navigation

✅ busca-cli

Escrito em node, é uma ferramenta muito simples para realizar buscas em pastas e arquivos a partir do terminal, utilizando padrão E/AND para filtrar os arquivos, independende da ordem das palavras ou se estão em sequencia, podendo personalizar os o filtro conforme opções disponiveis em cada comando. Veja como usar cada comando!

Uma pequena experiência de aprendizagem js e node (e apenas se divertindo).

NPM NPM GitHub license GitHub issues GitHub forks GitHub stars GitHub visits

badge-statements badge-branches badge-functions badge-lines

🔹 Pré Requisitos

  1. node
  2. npm

🔹 Instalação

$ npm install -g @donatocardoso/busca-cli

Ou

$ yarn global add @donatocardoso/busca-cli

Outra alternativa, você pode baixar este repositório e instalar a partir da fonte:

$ git clone https://github.com/donatocardoso/busca-cli.git
$ cd busca-cli
$ npm install
$ npm link

🔹 Uso

Para utilizar a ferramenta use da opção "-a" ou "--ajuda" para obter ajuda:

$ npx @donatocardoso/busca-cli --ajuda

Saída:

Usage: busca-cli [comando]

Options:
  -v,   --versao                 Exibi a versão atual
  -a,   --ajuda                  Exibi ajuda para usar o comando

Commands:
  arquivo   [options] <texto>    Verifica se o(s) arquivo(s) possue(em) o texto informado
  carregar  [options]            Carrega em memória os arquivos do diretório informado
  pasta     [options] <texto>    Busca arquivos no diretório desejado que possuem o texto informado

Comandos

Para os próximos exemplos vamos considerar os seguintes arquivos:

nome: ./pasta01/arquivo01.txt

conteúdo: night catches us 2010 anthony mackie kerry washington wendell pierce tanya hamilton tanya hamilton
nome: ./pasta02/arquivo02.txt

conteúdo: Night catches us 2010 anthony mackie kerry washington Wendell pierce tanya hamilton tanya Hamilton

Exemplos de uso dos comandos:

  1. busca-cli arquivo
  • Realiza uma busca com uma sentença chave nos arquivos informados, veja a estrutura do comando:

  • O parametro texto é obrigatório e deve ser informado com o uso de aspas simples ou duplas.

  • A opção caminhos é obrigatório e deve ser informada com um ou mais valores.

$ npx @donatocardoso/busca-cli arquivo [opcoes] <texto> -c [caminhos...]
  • As opções do comando são:
-c, --caminhos  [caminhos...]   Arquivo(s) em que a verificação será realizada
-d, --detalhes                  Retorna detalhes do(s) arquivo(s)
-e, --exato                     Busca pela sentença exata informada
-s, --sensivel                  Diferencia maiúscula de minúscula
-a, --ajuda                     Exibi ajuda para usar o comando
  • Exemplos de chamada:
$ npx @donatocardoso/busca-cli arquivo "night wendell hamilton" -c ./pasta01/arquivo01.txt ./pasta02/arquivo02.txt
$ npx @donatocardoso/busca-cli arquivo -des "night wendell hamilton" -c ./pasta01/arquivo01.txt ./pasta02/arquivo02.txt
$ npx @donatocardoso/busca-cli arquivo -d -e -s "night wendell hamilton" -c ./pasta01/arquivo01.txt ./pasta02/arquivo02.txt
  1. busca-cli pasta
  • Realiza uma busca com uma sentença chave nas pastas informadas, veja a estrutura do comando:

  • O parametro texto é obrigatório e deve ser informado com o uso de aspas simples ou duplas.

  • A opção caminhos é obrigatório e deve ser informada com um ou mais valores.

$ npx @donatocardoso/busca-cli pasta [opcoes] <texto> -c [caminhos...]
  • As opções do comando são:
-c,   --caminhos  [caminhos...]  Diretório(s) em que a verificação será realizada
-d,   --detalhes                 Retorna detalhes dos arquivos encontrados
-e,   --exato                    Busca pela sentença exata informada
-r,   --recursivo                Busca na pasta e sub-pastas do caminho informado
-s,   --sensivel                 Diferencia maiúscula de minúscula
-a,   --ajuda                    Exibi ajuda para usar o comando
  • Exemplos de chamada:
$ npx @donatocardoso/busca-cli pasta "night wendell hamilton" -c ./pasta01 ./pasta02
$ npx @donatocardoso/busca-cli pasta -ders "night wendell hamilton" -c ./pasta01 ./pasta02
$ npx @donatocardoso/busca-cli pasta -d -e -r -s "night wendell hamilton" -c ./pasta01 ./pasta02
  1. busca-cli carregar
  • Carrega as pastas e/ou arquivos informados em memória e em seguida faz solicitação de uma entrada com uma sentença chave para realizar a busca, veja a estrutura do comando:

  • A opção caminhos é obrigatório e deve ser informada com um ou mais valores.

$ npx @donatocardoso/busca-cli carregar [opcoes] -c [caminhos...]
  • As opções do comando são:
-c,   --caminhos  [caminhos...]  Arquivo(s) em que a verificação será realizada
-d,   --detalhes                 Retorna detalhes dos arquivos encontrados
-e,   --exato                    Busca pela sentença exata informada
-r,   --recursivo                Busca na pasta e sub-pastas do caminho informado
-s,   --sensivel                 Diferencia maiúscula de minúscula
-a,   --ajuda                    Exibi ajuda para usar o comando
  • Exemplos de chamada:
$ npx @donatocardoso/busca-cli carregar "night wendell hamilton" -c ./pasta01 ./pasta02/arquivo02.txt
$ npx @donatocardoso/busca-cli carregar -ders "night wendell hamilton" -c ./pasta01 ./pasta02/arquivo02.txt
$ npx @donatocardoso/busca-cli carregar -d -e -r -s "night wendell hamilton" -c ./pasta01 ./pasta02/arquivo02.txt

Testes

Os Testes Unitários são bem simples de ser executados, o arquivo "jest.setup.js" já realiza as configurações básicas para essa situação, sendo necessário executar somente um dos seguintes comandos, escolha um conforme sua necessidade:

$ npm test          // executa os testes
$ npm test:coverage // executa os testes e exibi a cobertura dos testes

Ou

$ yarn test          // executa os testes
$ yarn test:coverage // executa os testes e exibi a cobertura dos testes

Caso ainda queira realizar testes com uma amostragem maior há um "./example/movies.zip" com vários arquivos preparados, faça a descompactação dos arquivos e informe-os conforme é solicitado nos comandos, exemplo:

$ npx @donatocardoso/busca-cli pasta -ers ./example/movies

Licença

MIT

About

Ferramenta responsável por ler o conteúdo de arquivos e filtrá-los de acordo com um texto informado

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published