mirror of
https://github.com/henrygd/beszel.git
synced 2026-03-22 21:46:18 +01:00
feat: add fingerprint command to agent (#1726)
Co-authored-by: henrygd <hank@henrygd.me>
This commit is contained in:
@@ -38,6 +38,9 @@ func (opts *cmdOptions) parse() bool {
|
||||
}
|
||||
fmt.Print("ok")
|
||||
return true
|
||||
case "fingerprint":
|
||||
handleFingerprint()
|
||||
return true
|
||||
}
|
||||
|
||||
// pflag.CommandLine.ParseErrorsWhitelist.UnknownFlags = true
|
||||
@@ -71,9 +74,9 @@ func (opts *cmdOptions) parse() bool {
|
||||
builder.WriteString(os.Args[0])
|
||||
builder.WriteString(" [command] [flags]\n")
|
||||
builder.WriteString("\nCommands:\n")
|
||||
builder.WriteString(" health Check if the agent is running\n")
|
||||
// builder.WriteString(" help Display this help message\n")
|
||||
builder.WriteString(" update Update to the latest version\n")
|
||||
builder.WriteString(" fingerprint View or reset the agent fingerprint\n")
|
||||
builder.WriteString(" health Check if the agent is running\n")
|
||||
builder.WriteString(" update Update to the latest version\n")
|
||||
builder.WriteString("\nFlags:\n")
|
||||
fmt.Print(builder.String())
|
||||
pflag.PrintDefaults()
|
||||
@@ -134,6 +137,38 @@ func (opts *cmdOptions) getAddress() string {
|
||||
return agent.GetAddress(opts.listen)
|
||||
}
|
||||
|
||||
// handleFingerprint handles the "fingerprint" command with subcommands "view" and "reset".
|
||||
func handleFingerprint() {
|
||||
subCmd := ""
|
||||
if len(os.Args) > 2 {
|
||||
subCmd = os.Args[2]
|
||||
}
|
||||
|
||||
switch subCmd {
|
||||
case "", "view":
|
||||
dataDir, _ := agent.GetDataDir()
|
||||
fp := agent.GetFingerprint(dataDir, "", "")
|
||||
fmt.Println(fp)
|
||||
case "help", "-h", "--help":
|
||||
fmt.Print(fingerprintUsage())
|
||||
case "reset":
|
||||
dataDir, err := agent.GetDataDir()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if err := agent.DeleteFingerprint(dataDir); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
fmt.Println("Fingerprint reset. A new one will be generated on next start.")
|
||||
default:
|
||||
log.Fatalf("Unknown command: %q\n\n%s", subCmd, fingerprintUsage())
|
||||
}
|
||||
}
|
||||
|
||||
func fingerprintUsage() string {
|
||||
return fmt.Sprintf("Usage: %s fingerprint [view|reset]\n\nCommands:\n view Print fingerprint (default)\n reset Reset saved fingerprint\n", os.Args[0])
|
||||
}
|
||||
|
||||
func main() {
|
||||
var opts cmdOptions
|
||||
subcommandHandled := opts.parse()
|
||||
|
||||
Reference in New Issue
Block a user