Olares/cli/cmd/ctl/os/root.go
Peng Peng 61d793e4c6
cli, daemon: add olares-cli status backed by olaresd /system/status (#2917)
* cli, daemon: add `olares-cli status` backed by olaresd /system/status

Adds a new top-level `olares-cli status` command that calls the local
olaresd daemon's `/system/status` HTTP endpoint and prints either a
grouped, annotated human-readable report or raw JSON.

To avoid duplicating the response schema, the daemon's `state` struct
and related enums are extracted into a new shared package
`cli/pkg/daemon/state`. The daemon now type-aliases those types so all
existing daemon call sites keep compiling unchanged.

Made-with: Cursor

* cli: drop unused state.APIResponse envelope type

The HTTP client in cli/pkg/daemon/api/client.go intentionally uses an
inline anonymous envelope with json.RawMessage for the data field so
that --json mode can passthrough the bytes verbatim, so the public
APIResponse{Data State} type defined here had zero references. Remove
it; if a strongly-typed consumer ever shows up, re-add then.

Addresses Cursor Bugbot feedback on PR #2917.

Made-with: Cursor
2026-04-21 00:29:50 +08:00

24 lines
394 B
Go

package os
import (
"github.com/spf13/cobra"
)
func NewOSCommands() []*cobra.Command {
return []*cobra.Command{
NewCmdPrecheck(),
NewCmdRootDownload(),
NewCmdPrepare(),
NewCmdInstallOs(),
NewCmdUninstallOs(),
NewCmdChangeIP(),
NewCmdRelease(),
NewCmdPrintInfo(),
NewCmdBackup(),
NewCmdLogs(),
NewCmdStart(),
NewCmdStop(),
NewCmdUpgradeOs(),
NewCmdStatus(),
}
}