Aller au contenu
← Retour aux projets

Usb Driver

#usb-driver

NandoDev Logo

🔌 Ferramenta CLI Pro para montar Pendrives e HDs Externos no WSL2

Version Platform Shell Tests Lint


#📋 Sobre

O usb-driver resolve um problema comum para desenvolvedores que usam WSL2: montar dispositivos de armazenamento USB (Pendrives e HDs Externos) formatados em EXT4, NTFS, FAT32 ou exFAT diretamente no Linux com extrema confiabilidade e facilidade.

#✨ O que há de novo (v0.7.0 -> v0.9.0)

  • Qualidade de Código: 100% validado com shellcheck.
  • 🏗️ Arquitetura Sólida: Constantes e lógica de estado centralizadas.
  • 🧪 Testes Automatizados: Suite de testes completa com bats-core.
  • 🛠️ Modo Verbose: Flag -v para depuração profunda.
  • Autocomplete: Suporte a Bash e Zsh para comandos e BUSIDs.

#🚀 Instalação

#Pré-requisitos

  1. Windows 11 (ou Windows 10 com WSL2)
  2. WSL2 com uma distribuição Linux
  3. usbipd-win instalado no Windows (winget install usbipd)
  4. ntfs-3g instalado no Linux (sudo apt install ntfs-3g)

#Instalação do usb-driver

git clone https://github.com/nandinhos/bkp-pendrive.git usb-driver
cd usb-driver
./scripts/install.sh

#📖 Uso

#Comandos principais

usb-driver up          # Monta dispositivo (detecção automática)
usb-driver up -s       # Escolhe o dispositivo manualmente
usb-driver down        # Desmonta com menu interativo
usb-driver list        # Lista dispositivos no Windows e WSL
usb-driver status      # Check de montagem atual
usb-driver help        # Manual completo

#Opções úteis

  • -v, --verbose: Mostra logs detalhados de execução.
  • --simulate: Testa a interface sem tocar no hardware.
  • --force: Força a desmontagem mesmo se o dispositivo estiver ocupado.

#🧪 Desenvolvimento e Qualidade

Para garantir a estabilidade, o projeto conta com ferramentas de CI/CD locais:

# Rodar testes de unidade (12+ testes)
./scripts/test.sh

# Validar sintaxe e boas práticas (shellcheck)
./scripts/lint.sh

#🏗️ Estrutura do Projeto

usb-driver/
├── bin/
│   └── usb-driver        # CLI principal v0.9.0
├── lib/
│   ├── constants.sh      # Centralização de configurações e versão
│   ├── logging.sh        # UI e cores (log_info, log_debug, etc)
│   ├── usbipd.sh         # Bridge com Windows
│   └── mount_ext4.sh     # Core de montagem
├── tests/                # Suite de testes bats-core
├── completions/          # Scripts de autocompletar (bash/zsh)
├── scripts/
│   ├── test.sh           # Runner de testes
│   └── lint.sh           # Runner de análise estática
└── CHANGELOG.md          # Histórico detalhado de versões

#🤝 Contribuindo

Contribuições são bem-vindas! O projeto agora segue padrões rigorosos de qualidade. Certifique-se de que ./scripts/test.sh e ./scripts/lint.sh passem antes de abrir um PR.


#📄 Licença

Este projeto está sob a licença MIT.


#👤 Autor

Desenvolvido por NandoDev com ❤️ para a comunidade WSL/Linux.

⭐ Se este projeto te ajudou, deixe uma estrela!

Nouvelle version disponible.