Files

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
}