/
ytt.go
54 lines (40 loc) · 1.31 KB
/
ytt.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Copyright 2024 The Carvel Authors.
// SPDX-License-Identifier: Apache-2.0
package cmd
import (
cmdtpl "carvel.dev/ytt/pkg/cmd/template"
"carvel.dev/ytt/pkg/version"
"github.com/cppforlife/cobrautil"
"github.com/spf13/cobra"
)
type YttOptions struct{}
func NewDefaultYttOptions() *YttOptions {
return &YttOptions{}
}
func NewDefaultYttCmd() *cobra.Command {
return NewYttCmd(NewDefaultYttOptions())
}
func NewYttCmd(o *YttOptions) *cobra.Command {
cmd := NewCmd(cmdtpl.NewOptions())
cmd.Use = "ytt"
cmd.Aliases = nil
cmd.Version = version.Version
cmd.Short = "ytt performs YAML templating"
cmd.Long = `ytt performs YAML templating.
Docs: https://carvel.dev/ytt/docs/latest/
Docs for data values: https://carvel.dev/ytt/docs/latest/ytt-data-values/`
// Affects children as well
cmd.SilenceErrors = true
cmd.SilenceUsage = true
// Disable docs header
cmd.DisableAutoGenTag = true
// TODO bash completion
cmd.AddCommand(NewVersionCmd(NewVersionOptions()))
cmd.AddCommand(NewCmd(cmdtpl.NewOptions())) // for backwards compat
cmd.AddCommand(NewFmtCmd(NewFmtOptions()))
cmd.AddCommand(NewWebsiteCmd(NewWebsiteOptions()))
// Reconfigure Commands
cobrautil.VisitCommands(cmd, cobrautil.ReconfigureCmdWithSubcmd,
cobrautil.DisallowExtraArgs, cobrautil.WrapRunEForCmd(cobrautil.ResolveFlagsForCmd))
return cmd
}