Рыба проекта. Минимальная функциональность
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user