| 144 | } |
| 145 | |
| 146 | func AddFormatFlags(cmd *cobra.Command, exportTarget *Exporter) { |
| 147 | var format string |
| 148 | StringEnumFlag(cmd, &format, "format", "", "", []string{"json"}, "Output format") |
| 149 | f := cmd.Flags() |
| 150 | f.StringP("jq", "q", "", "Filter JSON output using a jq `expression`") |
| 151 | f.StringP("template", "t", "", "Format JSON output using a Go template; see \"gh help formatting\"") |
| 152 | |
| 153 | oldPreRun := cmd.PreRunE |
| 154 | cmd.PreRunE = func(c *cobra.Command, args []string) error { |
| 155 | if oldPreRun != nil { |
| 156 | if err := oldPreRun(c, args); err != nil { |
| 157 | return err |
| 158 | } |
| 159 | } |
| 160 | |
| 161 | if export, err := checkFormatFlags(c); err == nil { |
| 162 | if export == nil { |
| 163 | *exportTarget = nil |
| 164 | } else { |
| 165 | *exportTarget = export |
| 166 | } |
| 167 | } else { |
| 168 | return err |
| 169 | } |
| 170 | return nil |
| 171 | } |
| 172 | } |
| 173 | |
| 174 | func checkFormatFlags(cmd *cobra.Command) (*jsonExporter, error) { |
| 175 | f := cmd.Flags() |