CLI para setup automatizado de ambiente de desenvolvimento no WSL/Linux
Project description
Dev Setup CLI
CLI para automatizar a configuração inicial de ambientes de desenvolvimento em distribuições Linux (WSL).
🎯 Objetivo
Centralizar scripts de instalação e configuração usados no setup de ambientes de desenvolvimento, evitando execução manual repetitiva e reduzindo inconsistências entre máquinas.
🚀 Recursos
- Atualização de pacotes do sistema
- Instalação/configuração de Python
- Instalação de
python3-venv - Instalação/configuração de Node.js 22
- Instalação/configuração de Java 21 e Maven
- Instalação/configuração de Git
- Instalação/configuração de MySQL
- Instalação/configuração de PostgreSQL
- Criação de projeto Python com
.venvemain.py - Diagnóstico do ambiente com
doctor - Suporte a
--dry-run - Suporte a
--yes
⚙️ Requisitos
- Linux / WSL
- Python 3.10+
pip- Permissão para executar comandos com
sudo
📦 Instalação
Local (modo desenvolvimento)
git clone https://github.com/sobraljhonata/dev-setup-cli
cd dev-setup-cli
pip install -e ".[dev]"
▶️ Uso
devsetup --help
🧩 Comandos
Sistema
devsetup system
Python
devsetup python
devsetup venv
Node.js
devsetup node
Java
devsetup java
Git
devsetup git
Banco de dados
devsetup mysql
devsetup postgres
Criar projeto Python
devsetup project minha-poc
O projeto será criado em:
~/Projetos/minha-poc
Estrutura:
minha-poc/
├── main.py
└── .venv/
🩺 Diagnóstico do ambiente
devsetup doctor
O comando verifica:
- Ferramentas instaladas
- Versões mínimas
- Status de serviços
📊 Versões mínimas
| Ferramenta | Versão mínima |
|---|---|
| Python | 3.10.0 |
| Node.js | 22.0.0 |
| Java | 21.0.0 |
| Maven | 3.8.0 |
| Git | 2.34.0 |
| MySQL | 8.0.0 |
| PostgreSQL | 14.0.0 |
⚡ Opções globais
Dry-run
Mostra os comandos sem executar:
devsetup --dry-run system
devsetup --dry-run --yes all
Yes
Confirma automaticamente ações interativas:
devsetup --yes system
devsetup -y system
🏁 Setup completo
devsetup all
Executa:
system
python
node
java
git
mysql
postgres
🧪 Testes
Instalar dependências:
pip install -e ".[dev]"
Rodar testes:
pytest
Cobertura:
pytest --cov --cov-report=term-missing
🏗️ Estrutura do projeto
dev-setup-cli/
├── devsetup/
│ ├── cli.py
│ ├── doctor.py
│ ├── config/
│ │ └── requirements.py
│ ├── core/
│ │ ├── checks.py
│ │ ├── prompt.py
│ │ ├── shell.py
│ │ └── version.py
│ ├── installers/
│ │ ├── git.py
│ │ ├── java.py
│ │ ├── mysql.py
│ │ ├── node.py
│ │ ├── postgres.py
│ │ ├── python.py
│ │ ├── system.py
│ │ └── venv.py
│ └── project/
│ └── python_project.py
├── tests/
├── pyproject.toml
└── README.md
🔒 Segurança
Este CLI executa comandos com sudo.
Recomendado usar:
devsetup --dry-run <comando>
Exemplo:
devsetup --dry-run mysql
🛣️ Roadmap
- Testes para installers
- Testes para CLI com Typer CliRunner
- Melhorias no
doctor - Suporte a Docker
- Suporte a SDKMAN
- Criação de projetos Java/Spring Boot
- Criação de projetos Node.js/TypeScript
- Configuração via
.devsetup.toml
🤝 Contribuição
Veja o arquivo CONTRIBUTING.md.
📄 Licença
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dev_setup_cli_jhonata-0.1.0.tar.gz.
File metadata
- Download URL: dev_setup_cli_jhonata-0.1.0.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17038a448d22287ae5580111a9b40846ca47a24faa7091229bfbd1bfc7948d00
|
|
| MD5 |
25c148ede04be76bd837ee1c4a8b0e65
|
|
| BLAKE2b-256 |
e747b481998a23765f70a20356389f498d05d5c556daa9bb174b1361fefb7dee
|
Provenance
The following attestation bundles were made for dev_setup_cli_jhonata-0.1.0.tar.gz:
Publisher:
release.yml on sobraljhonata/dev-setup-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dev_setup_cli_jhonata-0.1.0.tar.gz -
Subject digest:
17038a448d22287ae5580111a9b40846ca47a24faa7091229bfbd1bfc7948d00 - Sigstore transparency entry: 1438167029
- Sigstore integration time:
-
Permalink:
sobraljhonata/dev-setup-cli@bb736548c6df39bfaf4e12fbd24ca6ae5fa99989 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/sobraljhonata
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bb736548c6df39bfaf4e12fbd24ca6ae5fa99989 -
Trigger Event:
push
-
Statement type:
File details
Details for the file dev_setup_cli_jhonata-0.1.0-py3-none-any.whl.
File metadata
- Download URL: dev_setup_cli_jhonata-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d8b2ae70641aa71b6e9910ac92529f6554ecafecf96aa2be92556f4183dd6b0
|
|
| MD5 |
05d8a2b85830218edd1ba496613546d1
|
|
| BLAKE2b-256 |
6fb406dd6f124205b3841007ada323514ad5ac531fa8700c1ae296230a0f7a83
|
Provenance
The following attestation bundles were made for dev_setup_cli_jhonata-0.1.0-py3-none-any.whl:
Publisher:
release.yml on sobraljhonata/dev-setup-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dev_setup_cli_jhonata-0.1.0-py3-none-any.whl -
Subject digest:
1d8b2ae70641aa71b6e9910ac92529f6554ecafecf96aa2be92556f4183dd6b0 - Sigstore transparency entry: 1438167032
- Sigstore integration time:
-
Permalink:
sobraljhonata/dev-setup-cli@bb736548c6df39bfaf4e12fbd24ca6ae5fa99989 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/sobraljhonata
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bb736548c6df39bfaf4e12fbd24ca6ae5fa99989 -
Trigger Event:
push
-
Statement type: