summaryrefslogtreecommitdiff
path: root/cmd/gomplate/main.go
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2019-03-31 13:52:38 -0400
committerDave Henderson <dhenderson@gmail.com>2019-04-09 19:27:50 -0400
commitac0012f4f6d2cde52490294e1fb262770f95ba9f (patch)
treede763083c0eeebe58ab679f595d4e95214534c84 /cmd/gomplate/main.go
parent32235c3c65d9c5fdc7171077f603b203197088a2 (diff)
Adding --output-map argument for templating output paths
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'cmd/gomplate/main.go')
-rw-r--r--cmd/gomplate/main.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/cmd/gomplate/main.go b/cmd/gomplate/main.go
index 20b1e5a2..3c125c7d 100644
--- a/cmd/gomplate/main.go
+++ b/cmd/gomplate/main.go
@@ -23,6 +23,7 @@ var (
opts gomplate.Config
)
+// nolint: gocyclo
func validateOpts(cmd *cobra.Command, args []string) error {
if cmd.Flag("in").Changed && cmd.Flag("file").Changed {
return errors.New("--in and --file may not be used together")
@@ -44,6 +45,15 @@ func validateOpts(cmd *cobra.Command, args []string) error {
return errors.New("--input-dir must be set when --output-dir is set")
}
}
+
+ if cmd.Flag("output-map").Changed {
+ if cmd.Flag("out").Changed || cmd.Flag("output-dir").Changed {
+ return errors.New("--output-map can not be used together with --out or --output-dir")
+ }
+ if !cmd.Flag("input-dir").Changed {
+ return errors.New("--input-dir must be set when --output-map is set")
+ }
+ }
return nil
}
@@ -140,6 +150,7 @@ func initFlags(command *cobra.Command) {
command.Flags().StringArrayVarP(&opts.OutputFiles, "out", "o", []string{"-"}, "output `file` name. Omit to use standard output.")
command.Flags().StringArrayVarP(&opts.Templates, "template", "t", []string{}, "Additional template file(s)")
command.Flags().StringVar(&opts.OutputDir, "output-dir", ".", "`directory` to store the processed templates. Only used for --input-dir")
+ command.Flags().StringVar(&opts.OutputMap, "output-map", "", "Template `string` to map the input file to an output path")
command.Flags().StringVar(&opts.OutMode, "chmod", "", "set the mode for output file(s). Omit to inherit from input file(s)")
ldDefault := env.Getenv("GOMPLATE_LEFT_DELIM", "{{")