a9f5a74162
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
43 lines
914 B
Go
43 lines
914 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
"git.tswf.io/infra/go-synapse-backupper/resources"
|
|
)
|
|
|
|
func generateConfigCmd() *cobra.Command {
|
|
var lang string
|
|
var output string
|
|
|
|
cmd := &cobra.Command{
|
|
Use: "generate-config",
|
|
Short: "Generate a commented example configuration file",
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
var tmpl []byte
|
|
switch lang {
|
|
case "en":
|
|
tmpl = resources.ConfigEnYAML
|
|
case "ru":
|
|
tmpl = resources.ConfigRuYAML
|
|
default:
|
|
return fmt.Errorf("unsupported language: %q (must be \"en\" or \"ru\")", lang)
|
|
}
|
|
|
|
if output != "" {
|
|
return os.WriteFile(output, tmpl, 0o644)
|
|
}
|
|
_, err := cmd.OutOrStdout().Write(tmpl)
|
|
return err
|
|
},
|
|
}
|
|
|
|
cmd.Flags().StringVar(&lang, "lang", "en", "Language for comments (en or ru)")
|
|
cmd.Flags().StringVar(&output, "output", "", "Output file path (empty = stdout)")
|
|
|
|
return cmd
|
|
}
|