Align CLI naming with AX conventions
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run

This commit is contained in:
Virgil 2026-04-04 06:49:40 +00:00
parent 53b2156216
commit 0671c60a1a
13 changed files with 55 additions and 55 deletions

View file

@ -37,7 +37,7 @@ var doctorCmd = &cobra.Command{
Use: "doctor",
Short: "Check and refresh the status of installed miners",
Long: `Performs a live check for installed miners, displays their status, and updates the local cache.`,
RunE: func(cmd *cobra.Command, args []string) error {
RunE: func(_ *cobra.Command, args []string) error {
fmt.Println("--- Mining Doctor ---")
fmt.Println("Performing live check and refreshing cache...")
fmt.Println()

View file

@ -15,7 +15,7 @@ var installCmd = &cobra.Command{
Short: "Install or update a miner",
Long: `Download and install a new miner, or update an existing one to the latest version.`,
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
RunE: func(_ *cobra.Command, args []string) error {
minerType := args[0]
var miner mining.Miner
@ -65,8 +65,8 @@ var installCmd = &cobra.Command{
}
func updateDoctorCache() error {
manager := getManager()
availableMiners := manager.ListAvailableMiners()
serviceManager := getServiceManager()
availableMiners := serviceManager.ListAvailableMiners()
if len(availableMiners) == 0 {
return nil
}

View file

@ -11,11 +11,11 @@ var listCmd = &cobra.Command{
Use: "list",
Short: "List running and available miners",
Long: `List all running miners and their status, as well as all miners that are available to be installed and started.`,
RunE: func(cmd *cobra.Command, args []string) error {
manager := getManager()
RunE: func(_ *cobra.Command, args []string) error {
serviceManager := getServiceManager()
// List running miners
runningMiners := manager.ListMiners()
runningMiners := serviceManager.ListMiners()
fmt.Println("Running Miners:")
if len(runningMiners) == 0 {
fmt.Println(" No running miners found.")
@ -30,7 +30,7 @@ var listCmd = &cobra.Command{
fmt.Println()
// List available miners
availableMiners := manager.ListAvailableMiners()
availableMiners := serviceManager.ListAvailableMiners()
fmt.Println("Available Miners:")
if len(availableMiners) == 0 {
fmt.Println(" No available miners found.")

View file

@ -68,7 +68,7 @@ var peerListCmd = &cobra.Command{
Use: "list",
Short: "List registered peers",
Long: `Display all registered peers with their connection status.`,
RunE: func(cmd *cobra.Command, args []string) error {
RunE: func(_ *cobra.Command, args []string) error {
peerRegistry, err := getPeerRegistry()
if err != nil {
return fmt.Errorf("failed to get peer registry: %w", err)
@ -110,7 +110,7 @@ var peerRemoveCmd = &cobra.Command{
Short: "Remove a peer from registry",
Long: `Remove a peer node from the registry. This will disconnect if connected.`,
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
RunE: func(_ *cobra.Command, args []string) error {
peerID := args[0]
peer := findPeerByPartialID(peerID)
@ -138,7 +138,7 @@ var peerPingCmd = &cobra.Command{
Short: "Ping a peer and update metrics",
Long: `Send a ping to a peer and measure round-trip latency.`,
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
RunE: func(_ *cobra.Command, args []string) error {
peerID := args[0]
peer := findPeerByPartialID(peerID)

View file

@ -8,7 +8,7 @@ import (
)
var (
manager *mining.Manager
serviceManager *mining.Manager
)
var rootCmd = &cobra.Command{
@ -31,14 +31,14 @@ func initializeManager() {
if len(os.Args) > 1 && os.Args[1] == "simulate" {
return
}
if manager == nil {
manager = mining.NewManager()
if serviceManager == nil {
serviceManager = mining.NewManager()
}
}
func getManager() *mining.Manager {
if manager == nil {
manager = mining.NewManager()
func getServiceManager() *mining.Manager {
if serviceManager == nil {
serviceManager = mining.NewManager()
}
return manager
return serviceManager
}

View file

@ -27,7 +27,7 @@ var serveCmd = &cobra.Command{
Use: "serve",
Short: "Start the mining service and interactive shell",
Long: `Start the mining service, which provides a RESTful API for managing miners, and an interactive shell for CLI commands.`,
RunE: func(command *cobra.Command, args []string) error {
RunE: func(_ *cobra.Command, args []string) error {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
@ -42,10 +42,10 @@ var serveCmd = &cobra.Command{
displayAddress := fmt.Sprintf("%s:%d", displayHostName, servePort)
listenAddress := fmt.Sprintf("%s:%d", serveHost, servePort)
// manager := getManager() shares the same miner lifecycle state across `mining start`, `mining stop`, and `mining serve`.
manager := getManager()
// serviceManager := getServiceManager() shares miner lifecycle state across `mining start`, `mining stop`, and `mining serve`.
serviceManager := getServiceManager()
service, err := mining.NewService(manager, listenAddress, displayAddress, apiNamespace)
service, err := mining.NewService(serviceManager, listenAddress, displayAddress, apiNamespace)
if err != nil {
return fmt.Errorf("failed to create new service: %w", err)
}
@ -122,20 +122,20 @@ var serveCmd = &cobra.Command{
continue
}
config := &mining.Config{
minerConfig := &mining.Config{
Pool: poolURL,
Wallet: walletAddress,
LogOutput: true,
}
// config.Validate() rejects malformed pool and wallet values before the miner starts.
if err := config.Validate(); err != nil {
// minerConfig.Validate() rejects malformed pool and wallet values before the miner starts.
if err := minerConfig.Validate(); err != nil {
fmt.Fprintf(os.Stderr, "Error: Invalid configuration: %v\n", err)
fmt.Print(">> ")
continue
}
miner, err := manager.StartMiner(context.Background(), minerType, config)
miner, err := serviceManager.StartMiner(context.Background(), minerType, minerConfig)
if err != nil {
fmt.Fprintf(os.Stderr, "Error starting miner: %v\n", err)
} else {
@ -147,7 +147,7 @@ var serveCmd = &cobra.Command{
fmt.Println("Error: status command requires miner name, for example `status xmrig`")
} else {
minerName := commandArgs[0]
miner, err := manager.GetMiner(minerName)
miner, err := serviceManager.GetMiner(minerName)
if err != nil {
fmt.Fprintf(os.Stderr, "Error getting miner status: %v\n", err)
} else {
@ -169,7 +169,7 @@ var serveCmd = &cobra.Command{
fmt.Println("Error: stop command requires miner name, for example `stop xmrig`")
} else {
minerName := commandArgs[0]
err := manager.StopMiner(context.Background(), minerName)
err := serviceManager.StopMiner(context.Background(), minerName)
if err != nil {
fmt.Fprintf(os.Stderr, "Error stopping miner: %v\n", err)
} else {
@ -177,7 +177,7 @@ var serveCmd = &cobra.Command{
}
}
case "list":
miners := manager.ListMiners()
miners := serviceManager.ListMiners()
if len(miners) == 0 {
fmt.Println("No miners currently running.")
} else {
@ -206,8 +206,8 @@ var serveCmd = &cobra.Command{
case <-ctx.Done():
}
// manager.Stop() stops miner goroutines and closes the shared manager before exit.
manager.Stop()
// serviceManager.Stop() stops miner goroutines and closes the shared service state before exit.
serviceManager.Stop()
fmt.Println("Mining service stopped.")
return nil

View file

@ -45,7 +45,7 @@ Available presets:
cpu-high - High-end CPU (15 kH/s, rx/0)
gpu-ethash - GPU mining ETH (30 MH/s, ethash)
gpu-kawpow - GPU mining RVN (15 MH/s, kawpow)`,
RunE: func(cmd *cobra.Command, args []string) error {
RunE: func(_ *cobra.Command, args []string) error {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
@ -60,8 +60,8 @@ Available presets:
displayAddress := fmt.Sprintf("%s:%d", displayHost, servePort)
listenAddress := fmt.Sprintf("%s:%d", serveHost, servePort)
// manager := mining.NewManagerForSimulation() // keeps simulated miners isolated from the real autostart state.
manager := mining.NewManagerForSimulation()
// serviceManager := mining.NewManagerForSimulation() // keeps simulated miners isolated from the real autostart state.
serviceManager := mining.NewManagerForSimulation()
// getSimulatedConfig(0) // returns a config such as sim-cpu-medium-001.
for i := 0; i < simulatedMinerCount; i++ {
@ -73,8 +73,8 @@ Available presets:
return fmt.Errorf("failed to start simulated miner %d: %w", i, err)
}
// manager.RegisterMiner(simulatedMiner) // makes the simulated miner visible to `mining serve`.
if err := manager.RegisterMiner(simulatedMiner); err != nil {
// serviceManager.RegisterMiner(simulatedMiner) // makes the simulated miner visible to `mining serve`.
if err := serviceManager.RegisterMiner(simulatedMiner); err != nil {
return fmt.Errorf("failed to register simulated miner %d: %w", i, err)
}
@ -82,8 +82,8 @@ Available presets:
simulatedConfig.Name, simulatedConfig.Algorithm, simulatedConfig.BaseHashrate)
}
// service, err := mining.NewService(manager, listenAddress, displayAddress, apiNamespace) // serves the simulator on http://127.0.0.1:9090.
service, err := mining.NewService(manager, listenAddress, displayAddress, apiNamespace)
// service, err := mining.NewService(serviceManager, listenAddress, displayAddress, apiNamespace) // serves the simulator on http://127.0.0.1:9090.
service, err := mining.NewService(serviceManager, listenAddress, displayAddress, apiNamespace)
if err != nil {
return fmt.Errorf("failed to create new service: %w", err)
}
@ -113,9 +113,9 @@ Available presets:
case <-ctx.Done():
}
// for _, miner := range manager.ListMiners() { manager.StopMiner(context.Background(), miner.GetName()) } // stops every simulated miner before exit.
for _, miner := range manager.ListMiners() {
manager.StopMiner(context.Background(), miner.GetName())
// for _, miner := range serviceManager.ListMiners() { serviceManager.StopMiner(context.Background(), miner.GetName()) } // stops every simulated miner before exit.
for _, miner := range serviceManager.ListMiners() {
serviceManager.StopMiner(context.Background(), miner.GetName())
}
fmt.Println("Simulation stopped.")

View file

@ -19,14 +19,14 @@ var startCmd = &cobra.Command{
Short: "Start a new miner",
Long: `Start a new miner with the specified configuration.`,
Args: cobra.ExactArgs(1),
RunE: func(command *cobra.Command, args []string) error {
RunE: func(_ *cobra.Command, args []string) error {
minerType := args[0]
config := &mining.Config{
minerConfig := &mining.Config{
Pool: poolAddress,
Wallet: walletAddress,
}
miner, err := getManager().StartMiner(context.Background(), minerType, config)
miner, err := getServiceManager().StartMiner(context.Background(), minerType, minerConfig)
if err != nil {
return fmt.Errorf("failed to start miner: %w", err)
}

View file

@ -15,11 +15,11 @@ var statusCmd = &cobra.Command{
Short: "Get status of a running miner",
Long: `Get detailed status information for a specific running miner.`,
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
RunE: func(_ *cobra.Command, args []string) error {
minerName := args[0]
manager := getManager()
serviceManager := getServiceManager()
miner, err := manager.GetMiner(minerName)
miner, err := serviceManager.GetMiner(minerName)
if err != nil {
return fmt.Errorf("failed to get miner: %w", err)
}

View file

@ -13,11 +13,11 @@ var stopCmd = &cobra.Command{
Short: "Stop a running miner",
Long: `Stop a running miner by its name.`,
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
RunE: func(_ *cobra.Command, args []string) error {
minerName := args[0]
manager := getManager()
serviceManager := getServiceManager()
if err := manager.StopMiner(context.Background(), minerName); err != nil {
if err := serviceManager.StopMiner(context.Background(), minerName); err != nil {
return fmt.Errorf("failed to stop miner: %w", err)
}

View file

@ -13,12 +13,12 @@ var uninstallCmd = &cobra.Command{
Short: "Uninstall a miner",
Long: `Stops the miner if it is running, removes all associated files, and updates the configuration.`,
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
RunE: func(_ *cobra.Command, args []string) error {
minerType := args[0]
manager := getManager() // getManager() returns the shared manager used by `mining uninstall`.
serviceManager := getServiceManager() // getServiceManager() returns the shared manager used by `mining uninstall`.
fmt.Printf("Uninstalling %s...\n", minerType)
if err := manager.UninstallMiner(context.Background(), minerType); err != nil {
if err := serviceManager.UninstallMiner(context.Background(), minerType); err != nil {
return fmt.Errorf("failed to uninstall miner: %w", err)
}

View file

@ -29,7 +29,7 @@ var updateCmd = &cobra.Command{
Use: "update",
Short: "Check for updates to installed miners",
Long: `Checks for new versions of all installed miners and notifies you if an update is available.`,
RunE: func(cmd *cobra.Command, args []string) error {
RunE: func(_ *cobra.Command, args []string) error {
fmt.Println("Checking for updates...")
homeDir, err := os.UserHomeDir()

View file

@ -14,7 +14,7 @@ import (
// @host localhost:8080
// @BasePath /api/v1/mining
func main() {
// If no command is provided, default to "serve"
// go run ./cmd/mining starts the HTTP API by default when no subcommand is provided.
if len(os.Args) == 1 {
os.Args = append(os.Args, "serve")
}