| package hooks |
| |
| import ( |
| "fmt" |
| ) |
| |
| const ( |
| hookTemplateCommandName = `{{command}}` |
| hookTemplateFlagValue = `{{flagValue %q}}` |
| hookTemplateArg = `{{argValue %d}}` |
| ) |
| |
| // TemplateReplaceSubcommandName returns a hook template string |
| // that will be replaced by the CLI subcommand being executed |
| // |
| // Example: |
| // |
| // Response{ |
| // Type: NextSteps, |
| // Template: "you ran the subcommand: " + TemplateReplaceSubcommandName(), |
| // } |
| // |
| // When being executed after the command: |
| // |
| // docker run --name "my-container" alpine |
| // |
| // It results in the message: |
| // |
| // you ran the subcommand: run |
| func TemplateReplaceSubcommandName() string { |
| return hookTemplateCommandName |
| } |
| |
| // TemplateReplaceFlagValue returns a hook template string that will be |
| // replaced with the flags value when printed by the CLI. |
| // |
| // Example: |
| // |
| // Response{ |
| // Type: NextSteps, |
| // Template: "you ran a container named: " + TemplateReplaceFlagValue("name"), |
| // } |
| // |
| // when executed after the command: |
| // |
| // docker run --name "my-container" alpine |
| // |
| // it results in the message: |
| // |
| // you ran a container named: my-container |
| func TemplateReplaceFlagValue(flag string) string { |
| return fmt.Sprintf(hookTemplateFlagValue, flag) |
| } |
| |
| // TemplateReplaceArg takes an index i and returns a hook |
| // template string that the CLI will replace the template with |
| // the ith argument after processing the passed flags. |
| // |
| // Example: |
| // |
| // Response{ |
| // Type: NextSteps, |
| // Template: "run this image with `docker run " + TemplateReplaceArg(0) + "`", |
| // } |
| // |
| // when being executed after the command: |
| // |
| // docker pull alpine |
| // |
| // It results in the message: |
| // |
| // Run this image with `docker run alpine` |
| func TemplateReplaceArg(i int) string { |
| return fmt.Sprintf(hookTemplateArg, i) |
| } |