Ir para o conteúdo

Susa CLI

Sistema modular de CLI em Shell Script para automação de tarefas e gerenciamento de software.

Version License Shell Platform

✨ Características

  • 🔍 Discovery Automático - Comandos descobertos da estrutura de diretórios
  • 📦 Sistema de Plugins - Extensão via repositórios Git externos
  • 🎯 Subcategorias Multi-nível - Navegação hierárquica ilimitada
  • 🌍 Variáveis de Ambiente - Configurações isoladas por comando com expansão automática
  • 🖥️ Multi-plataforma - Suporte para Linux (Debian, Fedora) e macOS
  • 🎨 Interface Rica - Logs coloridos, agrupamento visual, help customizado
  • ⚙️ Parser JSON Robusto - jq com instalação automática
  • 🔐 Gestão de Permissões - Indicadores e verificação de sudo
  • 🌐 Instalação Remota - Instale com um único comando curl

🚀 Instalação

Linux and macOS

Use este comando com curl para baixar o script e executá-lo:

curl -LsSf https://raw.githubusercontent.com/duducp/susa/main/install-remote.sh | bash

Para instruções completas de instalação, desinstalação e verificação, veja o Guia de Início Rápido.

📖 Uso Básico

# Listar categorias
susa

# Executar comando
susa setup asdf

# Gerenciar plugins
susa self plugin add user/repo
susa self plugin list

# Autocompletar
susa self completion bash --install

Para exemplos detalhados e tutoriais práticos, veja o Guia de Início Rápido.

📖 Estrutura do Projeto

cli/
├── core/                 # Core do CLI
│   ├── susa             # Entrypoint principal
│   ├── cli.json         # Configuração global
│   └── lib/             # Bibliotecas
│       ├── config.sh    # Parser JSON (com jq)
│       ├── git.sh       # Operações Git
│       ├── plugin.sh    # Sistema de plugins
│       ├── registry.sh  # Registro de plugins
│       ├── dependencies.sh  # Gerenciamento de dependências
│       └── ...
├── install.sh           # Instalador
├── uninstall.sh         # Desinstalador
├── commands/            # Comandos built-in
│   ├── install/        # Instalação de software
│   └── self/           # Gerenciamento do CLI
│       ├── plugin/     # Comandos de plugin
│       └── version/    # Versão do CLI
├── plugins/            # Plugins externos
│   └── registry.json  # Registro de plugins
├── config/            # Configurações de usuário
│   └── settings.conf
└── docs/             # Documentação

📚 Documentação

🔧 Desenvolvimento

Criar um Comando

Comandos são descobertos automaticamente da estrutura de diretórios:

mkdir -p commands/setup/docker
# Criar command.json e main.sh

Veja o Guia de Adição de Comandos para instruções completas.

🔌 Plugins

Instale plugins externos para adicionar funcionalidades:

# Instalar plugin
susa self plugin add https://github.com/user/susa-plugin-name

# Listar plugins
susa self plugin list

# Atualizar plugin
susa self plugin update plugin-name

# Remover plugin
susa self plugin remove plugin-name

🤝 Contribuindo

Contribuições são bem-vindas! Veja o guia de contribuição.

📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.