Skip to main content

Command-line dev tools by Daniel Caze (dsscaze)

Project description

caze-tools 🧰

Uma coleção de ferramentas de linha de comando (CLI) para auxiliar em tarefas comuns de desenvolvimento. Criado por Daniel Caze (dsscaze).

O que é?

caze-tools (ou simplesmente cz) é uma CLI projetada para automatizar e simplificar rotinas de desenvolvimento, como criar estruturas de projetos, gerar representações de diretórios e mesclar arquivos de código-fonte.

Instalação

Via PyPI (Recomendado)

Após a publicação no PyPI, você poderá instalar diretamente:

pip install caze-tools

A partir do código-fonte

Para desenvolvimento ou versão mais recente:

git clone https://github.com/dsscaze/caze-tools.git
cd caze-tools
pip install -e .

Comandos Disponíveis

O comando principal é czt (um alias para caze-tools).

czt mkstruct

Cria uma estrutura de diretórios e arquivos a partir de uma representação em texto (árvore de diretórios).

Uso:

czt mkstruct <arquivo_fonte.md>

Exemplo estrutura.md:

meu-projeto/
├── src/
│   ├── __init__.py
│   └── main.py
└── README.md

Ao executar czt mkstruct estrutura.md, a estrutura acima será criada no diretório atual.

czt ls-struct

Faz o inverso do mkstruct: lê uma estrutura de diretórios existente e gera uma representação em árvore.

Uso:

czt ls-struct [opções]

Opções:

  • -p, --path <diretório>: Diretório a analisar (padrão: diretório atual)
  • -o, --output <arquivo>: Salvar resultado em arquivo
  • --ignore <padrão>: Ignorar arquivos/pastas (pode usar múltiplas vezes)

Exemplos:

  • Listar estrutura do diretório atual:

    czt ls-struct
    
  • Salvar estrutura em arquivo:

    czt ls-struct -o project_tree.md
    
  • Gerar estrutura de outra pasta:

    czt ls-struct --path ../outro-projeto -o estrutura.md
    

czt merge

Mescla múltiplos arquivos de um diretório em um único arquivo de saída. Extremamente útil para criar contextos para LLMs ou para arquivar código.

Uso:

czt merge <arquivo_saida> [opções]

Opções:

  • -s, --source <pasta>: Diretório de origem (padrão: diretório atual)
  • -e, --ext <extensão>: Filtrar por extensão (pode usar múltiplas vezes)
  • -n, --name <padrão>: Filtrar por padrão de nome (pode usar múltiplas vezes)
  • --no-recursive: Não processar subdiretórios
  • --ignore <padrão>: Ignorar arquivos/pastas
  • -y, --yes: Pular confirmação

Exemplos:

  • Mesclar todos os arquivos do diretório atual:

    czt merge context.txt
    
  • Mesclar apenas arquivos .py e .js:

    czt merge context.txt -e py -e js
    
  • Mesclar arquivos de uma pasta específica:

    czt merge output.txt --source src -n "test_*.py"
    

czt addprefix

Adiciona um prefixo a todos os arquivos de uma pasta (recursivamente).

Uso:

czt addprefix <pasta> <prefixo> [--dry-run]

Exemplos:

  • Adicionar prefixo "old_" a todos os arquivos:

    czt addprefix ./minha-pasta old_
    
  • Simular sem fazer alterações reais:

    czt addprefix ./minha-pasta new_ --dry-run
    

czt rename

Renomeia arquivos substituindo um prefixo por outro (recursivamente).

Uso:

czt rename <pasta> <prefixo_antigo> <novo_prefixo> [--dry-run]

Exemplos:

  • Trocar prefixo "old_" por "new_":

    czt rename ./minha-pasta old_ new_
    
  • Simular a operação antes de executar:

    czt rename ./minha-pasta test_ prod_ --dry-run
    

czt toroot

Move todos os arquivos de subpastas para a pasta raiz, mantendo nomes únicos.

Uso:

czt toroot <pasta> [--dry-run]

Exemplos:

  • Mover todos os arquivos para a raiz:

    czt toroot ./minha-pasta
    
  • Simular a operação:

    czt toroot ./minha-pasta --dry-run
    

czt trimimg

Remove transparências desnecessárias de imagens PNG, reduzindo o tamanho do arquivo.

Uso:

czt trimimg <pasta> [--padding N] [--threshold N] [--dry-run]

Opções:

  • --padding: Pixels de margem a manter (padrão: 0)
  • --threshold: Nível de transparência mínimo (0-255, padrão: 10)

Exemplos:

  • Processar todas as PNGs com padding de 5px:

    czt trimimg ./imagens --padding 5
    
  • Simular processamento:

    czt trimimg ./imagens --dry-run
    

czt extractlog

Extrai valores de linhas de log que contenham uma chave no formato chave: valor.

Por padrão, salva todos os valores extraídos em um novo arquivo. Use --contar para contar ocorrências ou --distintos para listar valores únicos.

Uso:

czt extractlog <arquivo> <chave> [opções]

Opções:

  • --contar: Conta o total de ocorrências da chave
  • --distintos: Lista e conta os valores distintos encontrados
  • --saida <arquivo>: Caminho do arquivo de saída (padrão: <arquivo>_<chave>.txt)

Exemplos:

  • Extrair todos os valores de codigoMunicipio para um arquivo:

    czt extractlog app.log codigoMunicipio
    
  • Contar quantas vezes a chave aparece:

    czt extractlog app.log codigoMunicipio --contar
    
  • Listar valores únicos encontrados:

    czt extractlog app.log codigoMunicipio --distintos
    
  • Salvar resultado em arquivo específico:

    czt extractlog app.log codigoMunicipio --saida municipios.txt
    

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir uma issue para relatar bugs ou sugerir novas funcionalidades.

Publicação

Se você é mantenedor e deseja publicar uma nova versão no PyPI, consulte o Guia de Publicação.

Licença

Este projeto está licenciado sob a Licença MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

caze_tools-0.3.1.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

caze_tools-0.3.1-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file caze_tools-0.3.1.tar.gz.

File metadata

  • Download URL: caze_tools-0.3.1.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for caze_tools-0.3.1.tar.gz
Algorithm Hash digest
SHA256 1d5f5491a2f86b528b19fe5b0ad7cb0762c4f19996aef268c62d924bf2d3ab6f
MD5 804b2367884348c192ec6efc928a76a6
BLAKE2b-256 69bf8bd98d1ea1144a7d92e88f105e5c0bf57b04915084b4d95bd2ce7bcfc01c

See more details on using hashes here.

File details

Details for the file caze_tools-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: caze_tools-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for caze_tools-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0fe6e10791eed68d764026d0a4bfc2fc56259550682cf078ff33060eaf3e3f83
MD5 664ef286fd23ad4be70a4963eb70ea40
BLAKE2b-256 90ddbaed560dc36806b2b692cf69e64ba662edebd9b954c0ec3d177da11adc0c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page