hishtory/client/cmd/status.go

59 lines
1.5 KiB
Go

package cmd
import (
"fmt"
"github.com/ddworken/hishtory/client/data"
"github.com/ddworken/hishtory/client/hctx"
"github.com/ddworken/hishtory/client/lib"
"github.com/spf13/cobra"
)
var verbose *bool
var statusCmd = &cobra.Command{
Use: "status",
Short: "View status info including the secret key which is needed to sync shell history from another machine",
Run: func(cmd *cobra.Command, args []string) {
ctx := hctx.MakeContext()
config := hctx.GetConf(ctx)
fmt.Printf("hiSHtory: v0.%s\nEnabled: %v\n", lib.Version, config.IsEnabled)
fmt.Printf("Secret Key: %s\n", config.UserSecret)
if *verbose {
fmt.Printf("User ID: %s\n", data.UserId(config.UserSecret))
fmt.Printf("Device ID: %s\n", config.DeviceId)
printDumpStatus(config)
printOnlineStatus(config)
}
fmt.Printf("Commit Hash: %s\n", lib.GitCommit)
},
}
func printOnlineStatus(config hctx.ClientConfig) {
if config.IsOffline {
fmt.Println("Sync Mode: Disabled")
} else {
fmt.Println("Sync Mode: Enabled")
if config.HaveMissedUploads {
fmt.Println("Sync Status: Unsynced (device is offline?)")
} else {
fmt.Println("Sync Status: Synced")
}
}
}
func printDumpStatus(config hctx.ClientConfig) {
dumpRequests, err := lib.GetDumpRequests(config)
lib.CheckFatalError(err)
fmt.Printf("Dump Requests: ")
for _, d := range dumpRequests {
fmt.Printf("%#v, ", *d)
}
fmt.Print("\n")
}
func init() {
rootCmd.AddCommand(statusCmd)
verbose = statusCmd.Flags().BoolP("verbose", "v", false, "Display verbose hiSHtory information")
}