cmd/headscale/cli: add printListOutput to centralise table-vs-JSON branching

Add a helper that checks the --output flag and either serialises as
JSON/YAML or invokes a table-rendering callback. This removes the
repeated format,_ := cmd.Flags().GetString("output") + if-branch from
the five list commands.
This commit is contained in:
Kristoffer Dalby
2026-02-18 14:30:07 +00:00
parent 8891ec9835
commit d6c39e65a5
5 changed files with 102 additions and 139 deletions

View File

@@ -209,6 +209,22 @@ func printOutput(cmd *cobra.Command, result any, override string) error {
return nil
}
// printListOutput checks the --output flag: when a machine-readable format is
// requested it serialises data as JSON/YAML; otherwise it calls renderTable
// to produce the human-readable pterm table.
func printListOutput(
cmd *cobra.Command,
data any,
renderTable func() error,
) error {
format, _ := cmd.Flags().GetString("output")
if format != "" {
return printOutput(cmd, data, "")
}
return renderTable()
}
// printError writes err to stderr, formatting it as JSON/YAML when the
// --output flag requests machine-readable output. Used exclusively by
// Execute() so that every error surfaces in the format the caller asked for.