mirror of
https://github.com/juanfont/headscale.git
synced 2026-02-07 20:04:00 +01:00
Convert the 10 commands that were still using Run with ErrorOutput/SuccessOutput or log.Fatal/os.Exit: - backfillNodeIPsCmd: use grpcRunE-style manual connection with error returns; simplify the confirm/force logic - getPolicy, setPolicy, checkPolicy: replace ErrorOutput with fmt.Errorf returns in both the bypass-gRPC and gRPC paths - serveCmd, configTestCmd: replace log.Fatal with error returns - mockOidcCmd: replace log.Error+os.Exit with error return - versionCmd, generatePrivateKeyCmd: replace SuccessOutput with printOutput - dumpConfigCmd: return the error instead of swallowing it
38 lines
767 B
Go
38 lines
767 B
Go
package cli
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/spf13/cobra"
|
|
"tailscale.com/types/key"
|
|
)
|
|
|
|
func init() {
|
|
rootCmd.AddCommand(generateCmd)
|
|
generateCmd.AddCommand(generatePrivateKeyCmd)
|
|
}
|
|
|
|
var generateCmd = &cobra.Command{
|
|
Use: "generate",
|
|
Short: "Generate commands",
|
|
Aliases: []string{"gen"},
|
|
}
|
|
|
|
var generatePrivateKeyCmd = &cobra.Command{
|
|
Use: "private-key",
|
|
Short: "Generate a private key for the headscale server",
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
machineKey := key.NewMachine()
|
|
|
|
machineKeyStr, err := machineKey.MarshalText()
|
|
if err != nil {
|
|
return fmt.Errorf("marshalling machine key: %w", err)
|
|
}
|
|
|
|
return printOutput(cmd, map[string]string{
|
|
"private_key": string(machineKeyStr),
|
|
},
|
|
string(machineKeyStr))
|
|
},
|
|
}
|