Files
go-synapse-backupper/cmd/synapse-backupper/generate_config.go
T

48 lines
974 B
Go

package main
import (
_ "embed"
"fmt"
"os"
"github.com/spf13/cobra"
)
//go:embed resources/config.en.yaml
var configEnYAML []byte
//go:embed resources/config.ru.yaml
var configRuYAML []byte
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 = configEnYAML
case "ru":
tmpl = 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
}