Files
wild-cloud/wild-cli/README.md

3.9 KiB

Wild CLI

A unified Go CLI tool for managing Wild Cloud personal infrastructure, replacing the collection of wild-* bash scripts with a single, modern CLI application.

Overview

Wild CLI provides comprehensive management of your personal cloud infrastructure built on Talos Linux and Kubernetes. It offers better error handling, progress tracking, cross-platform support, and improved user experience compared to the original bash scripts.

Features

  • Unified interface - Single wild command instead of many wild-* scripts
  • Better error handling - Detailed error messages with suggestions
  • Cross-platform support - Works on Linux, macOS, and Windows
  • Progress tracking - Visual progress indicators for long-running operations
  • Improved validation - Input validation and environment checks
  • Native Go performance - Fast startup and execution
  • Comprehensive testing - Unit and integration tests

Installation

From Source

git clone <repository-url>
cd wild-cli
make build
make install

Pre-built Binaries

Download the latest release from the releases page and place the binary in your PATH.

Usage

Basic Commands

# Show help
wild --help

# Configuration management
wild config get cluster.name
wild config set cluster.domain example.com

# Secret management  
wild secret get database.password
wild secret set database.password mySecretPassword

# Application management
wild app list
wild app fetch nextcloud
wild app add nextcloud
wild app deploy nextcloud

# Cluster management
wild cluster nodes list
wild cluster config generate

# System setup
wild setup scaffold
wild setup cluster
wild setup services

Global Flags

  • --verbose, -v - Enable verbose logging
  • --dry-run - Show what would be done without making changes
  • --no-color - Disable colored output
  • --config-dir - Specify configuration directory
  • --wc-root - Wild Cloud installation directory
  • --wc-home - Wild Cloud project directory

Development

Prerequisites

  • Go 1.22 or later
  • Make

Building

# Build for current platform
make build

# Build for all platforms
make build-all

# Development build with formatting
make quick

Testing

# Run tests
make test

# Run tests with coverage
make test-coverage

# Run linter
make lint

# Run all checks
make check

Project Structure

wild-cli/
├── cmd/wild/           # CLI commands
│   ├── app/           # App management commands
│   ├── cluster/       # Cluster management commands
│   ├── config/        # Configuration commands
│   ├── secret/        # Secret management commands
│   ├── setup/         # Setup commands
│   └── util/          # Utility commands
├── internal/          # Internal packages
│   ├── config/        # Configuration management
│   ├── environment/   # Environment detection
│   ├── output/        # Output formatting
│   └── ...
├── test/              # Test files
├── docs/              # Documentation
└── scripts/           # Build scripts

Migration from Bash Scripts

Wild CLI maintains compatibility with the existing Wild Cloud workflow:

Bash Script Wild CLI Command
wild-config <path> wild config get <path>
wild-config-set <path> <value> wild config set <path> <value>
wild-secret <path> wild secret get <path>
wild-app-list wild app list
wild-app-deploy <name> wild app deploy <name>
wild-setup-cluster wild setup cluster

Environment Variables

  • WC_ROOT - Wild Cloud installation directory
  • WC_HOME - Wild Cloud project directory (auto-detected if not set)

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Run make check to ensure quality
  6. Submit a pull request

License

This project follows the same license as the Wild Cloud project.