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) }