An open API service indexing awesome lists of open source software.

https://github.com/donatocardoso/busca-cli

Ferramenta responsável por ler o conteúdo de arquivos e filtrá-los de acordo com um texto informado
https://github.com/donatocardoso/busca-cli

arquivo busca file folder node pasta pesquisa search

Last synced: about 2 months ago
JSON representation

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

Awesome Lists containing this project

README

        

# ✅ busca-cli

> Escrito em [node](http://nodejs.org), é 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!](#comandos)

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

[![NPM](https://img.shields.io/npm/v/@donatocardoso/busca-cli)](https://www.npmjs.com/package/@donatocardoso/busca-cli)
[![NPM](https://img.shields.io/npm/dt/@donatocardoso/busca-cli)](https://www.npmjs.com/package/@donatocardoso/busca-cli)
[![GitHub license](https://img.shields.io/github/license/donatocardoso/busca-cli)](LICENSE)
[![GitHub issues](https://img.shields.io/github/issues/donatocardoso/busca-cli)](https://github.com/donatocardoso/busca-cli/issues)
[![GitHub forks](https://img.shields.io/github/forks/donatocardoso/busca-cli)](https://github.com/donatocardoso/busca-cli/network/members)
[![GitHub stars](https://img.shields.io/github/stars/donatocardoso/busca-cli)](https://github.com/donatocardoso/busca-cli/stargazers)
[![GitHub visits](https://badges.pufler.dev/visits/donatocardoso/busca-cli)](https://badges.pufler.dev)

![badge-statements](./__tests__/badges/badge-branches.svg)
![badge-branches](./__tests__/badges/badge-functions.svg)
![badge-functions](./__tests__/badges/badge-lines.svg)
![badge-lines](./__tests__/badges/badge-statements.svg)

## 🔹 Pré Requisitos

1. node
1. npm

---

## 🔹 Instalação

```bash
$ npm install -g @donatocardoso/busca-cli
```

Ou

```bash
$ yarn global add @donatocardoso/busca-cli
```

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

```bash
$ 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:

```bash
$ npx @donatocardoso/busca-cli --ajuda
```

Saída:

```bash
Usage: busca-cli [comando]

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

Commands:
arquivo [options] 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] Busca arquivos no diretório desejado que possuem o texto informado
```

---

## Comandos

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

```text
nome: ./pasta01/arquivo01.txt

conteúdo: night catches us 2010 anthony mackie kerry washington wendell pierce tanya hamilton tanya hamilton
```

```text
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.

```bash
$ npx @donatocardoso/busca-cli arquivo [opcoes] -c [caminhos...]
```

- As opções do comando são:

```bash
-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:

```bash
$ 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
```

2. **_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.

```bash
$ npx @donatocardoso/busca-cli pasta [opcoes] -c [caminhos...]
```

- As opções do comando são:

```bash
-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:

```bash
$ 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
```

3. **_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.

```bash
$ npx @donatocardoso/busca-cli carregar [opcoes] -c [caminhos...]
```

- As opções do comando são:

```bash
-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:

```bash
$ 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:

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

Ou

```bash
$ 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:

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

---

## Licença

[MIT](LICENSE)