cli/internal/cmd/unifi/cmd_unifi.go
Snider ecc161b725 feat(unifi): add UniFi Go SDK integration and CLI commands
- Add pkg/unifi SDK wrapping unpoller/unifi with TLS, config resolution,
  and typed accessors for sites, clients, devices, networks, and routes
- Add CLI commands: unifi sites, clients, devices, networks, routes, config
- Register unifi commands in full variant build

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 01:13:31 +00:00

46 lines
1.2 KiB
Go

// Package unifi provides CLI commands for managing a UniFi network controller.
//
// Commands:
// - config: Configure UniFi connection (URL, credentials)
// - clients: List connected clients
// - devices: List infrastructure devices
// - sites: List controller sites
// - networks: List network segments and VLANs
// - routes: List gateway routing table
package unifi
import (
"github.com/host-uk/core/pkg/cli"
)
func init() {
cli.RegisterCommands(AddUniFiCommands)
}
// Style aliases from shared package.
var (
successStyle = cli.SuccessStyle
errorStyle = cli.ErrorStyle
warningStyle = cli.WarningStyle
dimStyle = cli.DimStyle
valueStyle = cli.ValueStyle
numberStyle = cli.NumberStyle
infoStyle = cli.InfoStyle
)
// AddUniFiCommands registers the 'unifi' command and all subcommands.
func AddUniFiCommands(root *cli.Command) {
unifiCmd := &cli.Command{
Use: "unifi",
Short: "UniFi network management",
Long: "Manage sites, devices, and connected clients on your UniFi controller.",
}
root.AddCommand(unifiCmd)
addConfigCommand(unifiCmd)
addClientsCommand(unifiCmd)
addDevicesCommand(unifiCmd)
addNetworksCommand(unifiCmd)
addRoutesCommand(unifiCmd)
addSitesCommand(unifiCmd)
}