From b2860fbfb0ca0032146c95c1596cd00c71f51bc8 Mon Sep 17 00:00:00 2001 From: Akizon77 Date: Sat, 6 Sep 2025 04:33:30 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20list-disk=20?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E4=BB=A5=E5=88=97=E5=87=BA=E6=89=80=E6=9C=89?= =?UTF-8?q?=E7=89=A9=E7=90=86=E7=A3=81=E7=9B=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/listDisk.go | 41 +++++++++++++++++++++++++++++++++++++++++ cmd/root.go | 2 +- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 cmd/listDisk.go diff --git a/cmd/listDisk.go b/cmd/listDisk.go new file mode 100644 index 0000000..c302c4c --- /dev/null +++ b/cmd/listDisk.go @@ -0,0 +1,41 @@ +package cmd + +import ( + "fmt" + "log" + "text/tabwriter" + + monitoring "github.com/komari-monitor/komari-agent/monitoring/unit" + "github.com/shirou/gopsutil/v4/disk" + "github.com/spf13/cobra" +) + +var ListDiskCmd = &cobra.Command{ + Use: "list-disk", + Short: "List all physical disks", + Long: `List all physical disks`, + Run: func(cmd *cobra.Command, args []string) { + dl, err := disk.Partitions(true) + if err != nil { + log.Println("Failed to get disk partitions:", err) + return + } + log.Println("All Disk Partitions:") + w := tabwriter.NewWriter(cmd.OutOrStdout(), 0, 0, 2, ' ', 0) + fmt.Fprintln(w, "Mountpoint\tFstype") + for _, part := range dl { + fmt.Fprintf(w, "%s\t%s\n", part.Mountpoint, part.Fstype) + } + _ = w.Flush() + diskList, err := monitoring.DiskList() + if err != nil { + log.Println("Failed to get disk list:", err) + return + } + log.Println("Monitoring Mountpoints:", diskList) + }, +} + +func init() { + RootCmd.AddCommand(ListDiskCmd) +} diff --git a/cmd/root.go b/cmd/root.go index f713d70..ef83fb4 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -83,7 +83,7 @@ func init() { RootCmd.PersistentFlags().StringVarP(&flags.Token, "token", "t", "", "API token") //RootCmd.MarkPersistentFlagRequired("token") RootCmd.PersistentFlags().StringVarP(&flags.Endpoint, "endpoint", "e", "", "API endpoint") - RootCmd.MarkPersistentFlagRequired("endpoint") + //RootCmd.MarkPersistentFlagRequired("endpoint") RootCmd.PersistentFlags().StringVar(&flags.AutoDiscoveryKey, "auto-discovery", "", "Auto discovery key for the agent") RootCmd.PersistentFlags().BoolVar(&flags.DisableAutoUpdate, "disable-auto-update", false, "Disable automatic updates") RootCmd.PersistentFlags().BoolVar(&flags.DisableWebSsh, "disable-web-ssh", false, "Disable remote control(web ssh and rce)")