diff options
| author | Dave Henderson <dhenderson@gmail.com> | 2019-03-31 13:52:38 -0400 |
|---|---|---|
| committer | Dave Henderson <dhenderson@gmail.com> | 2019-04-09 19:27:50 -0400 |
| commit | ac0012f4f6d2cde52490294e1fb262770f95ba9f (patch) | |
| tree | de763083c0eeebe58ab679f595d4e95214534c84 /cmd/gomplate/main.go | |
| parent | 32235c3c65d9c5fdc7171077f603b203197088a2 (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.go | 11 |
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", "{{") |
