Metadata-Version: 2.4
Name: filescan-report-cli
Version: 0.1.0
Summary: A CLI tool to scan directories and generate file reports
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"

# filescan-report-cli

[English](#english) | [Português](#português) | [Español](#español)

---

## English

A practical Python project to start AI studies.

A CLI tool to scan directories, generate file reports in **text**, **JSON**, or **CSV** format, and dynamically manipulate files using Regex.

### Installation
```bash
pip install -e ".[dev]"
```

### Usage
```
filescan <command> [options]

positional arguments:
  {report,action}
    report              Generate a file extensions report.
    action              Copy, delete, or move files using Regex.
```

#### 1. Generating Reports (report)
Scan a directory and generate an extension report.
```bash
# Scan current directory and print a text report
filescan report .

# Generate a JSON report for all Python files
filescan report ./src --format json --ext .py

# Generate a CSV report, top-level only, saved to a file
filescan report ./data --format csv --no-recursive --output report.csv
```

#### 2. Manipulating Files (action)
Search for files matching a regex pattern and copy, move, or delete them. Optionally rename them using regex capture groups.
```bash
# Move and rename specific ROMs using regex capture groups
filescan action ./isos ./clean_isos --match "^(.*?)(?:\s*-\s*)?(?:\s*(?:[\(\[][^\]\)]*[\)\]]))+\.(.+)$" --replace "\1.\2" --action move

# Copy all PDF files to a backup folder
filescan action ./docs ./backup --match ".*\.pdf$" --action copy

# Delete all temporary log files
filescan action ./logs . --match ".*\.log$" --action delete
```

### Development
Run the test suite:
```bash
pytest -v
```

---

## Português

Projeto prático em Python para iniciar estudos em IA.

Uma ferramenta CLI para escanear diretórios, gerar relatórios de arquivos no formato **texto**, **JSON** ou **CSV** e manipular arquivos dinamicamente usando Regex.

### Instalação
```bash
pip install -e ".[dev]"
```

### Uso
```
filescan <command> [options]

argumentos posicionais:
  {report,action}
    report              Gera um relatório de extensões de arquivos.
    action              Copia, exclui ou move arquivos usando Regex.
```

#### 1. Gerando Relatórios (report)
Escaneia uma pasta e cria estatísticas de extensões.
```bash
# Escaneia o diretório atual e imprime texto
filescan report .

# Gera um JSON de todos os arquivos .py
filescan report ./src --format json --ext .py

# Arquivo CSV que não lê subpastas
filescan report ./data --format csv --no-recursive --output report.csv
```

#### 2. Manipulando Arquivos (action)
Busca por arquivos através de expressões regulares (regex) para copiá-los, movê-los ou excluí-los, renomeando-os em tempo real.
```bash
# Isola e limpa os nomes de ROMs
filescan action ./isos ./clean_isos --match "^(.*?)(?:\s*-\s*)?(?:\s*(?:[\(\[][^\]\)]*[\)\]]))+\.(.+)$" --replace "\1.\2" --action move

# Copia de segurança para PDFs
filescan action ./docs ./backup --match ".*\.pdf$" --action copy

# Deleta todos os logs temporários
filescan action ./logs . --match ".*\.log$" --action delete
```

### Desenvolvimento
Rode os testes com o comando:
```bash
pytest -v
```

---

## Español

Proyecto práctico en Python para iniciar estudios de IA.

Una herramienta CLI para escanear directorios, generar informes de archivos en formato de **texto**, **JSON** o **CSV**, y manipular archivos dinámicamente usando Regex.

### Instalación
```bash
pip install -e ".[dev]"
```

### Uso
```
filescan <command> [options]

argumentos posicionales:
  {report,action}
    report              Genera un informe con extensiones de archivos.
    action              Copia, elimina o mueve archivos usando Regex.
```

#### 1. Generando Informes (report)
Escanea una carpeta y crea un informe.
```bash
# Escanea el directorio actual
filescan report .

# Genera un archivo JSON para los módulos .py
filescan report ./src --format json --ext .py

# Archivo CSV sin buscar subdirectorios recursivamente
filescan report ./data --format csv --no-recursive --output report.csv
```

#### 2. Manipulando Archivos (action)
Busca archivos o extensiones con expresiones regulares para copiarlos, moverlos o eliminarlos y renombrarlos opcionalmente.
```bash
# Aísla las ROMs limpiando los nombres innecesarios
filescan action ./isos ./clean_isos --match "^(.*?)(?:\s*-\s*)?(?:\s*(?:[\(\[][^\]\)]*[\)\]]))+\.(.+)$" --replace "\1.\2" --action move

# Copia todos los archivos PDF para seguridad
filescan action ./docs ./backup --match ".*\.pdf$" --action copy

# Elimina todos los logs
filescan action ./logs . --match ".*\.log$" --action delete
```

### Desarrollo
Correr pruebas locales:
```bash
pytest -v
```
