diff --git a/commands/genautocomplete.go b/commands/genautocomplete.go index 2a2fcdd91..b7f74fd89 100644 --- a/commands/genautocomplete.go +++ b/commands/genautocomplete.go @@ -48,4 +48,6 @@ func init() { genautocompleteCmd.PersistentFlags().StringVarP(&autocompleteTarget, "completionfile", "", "/etc/bash_completion.d/hugo.sh", "Autocompletion file") genautocompleteCmd.PersistentFlags().StringVarP(&autocompleteType, "type", "", "bash", "Autocompletion type (currently only bash supported)") + // For bash-completion + genautocompleteCmd.PersistentFlags().SetAnnotation("completionfile", cobra.BashCompFilenameExt, []string{}) } diff --git a/commands/gendoc.go b/commands/gendoc.go index ed7f073ac..9589bffa4 100644 --- a/commands/gendoc.go +++ b/commands/gendoc.go @@ -60,4 +60,7 @@ for rendering in Hugo.`, func init() { gendocCmd.PersistentFlags().StringVar(&gendocdir, "dir", "/tmp/hugodoc/", "the directory to write the doc.") + + // For bash-completion + gendocCmd.PersistentFlags().SetAnnotation("dir", cobra.BashCompSubdirsInDir, []string{}) } diff --git a/commands/genman.go b/commands/genman.go index 3dc8d3f52..68a98a46d 100644 --- a/commands/genman.go +++ b/commands/genman.go @@ -42,4 +42,7 @@ in the "man" directory under the current directory.`, func init() { genmanCmd.PersistentFlags().StringVar(&genmandir, "dir", "man/", "the directory to write the man pages.") + + // For bash-completion + genmanCmd.PersistentFlags().SetAnnotation("dir", cobra.BashCompSubdirsInDir, []string{}) } diff --git a/commands/hugo.go b/commands/hugo.go index ea8179780..2a72f535e 100644 --- a/commands/hugo.go +++ b/commands/hugo.go @@ -123,10 +123,14 @@ func init() { HugoCmd.Flags().BoolVarP(&NoTimes, "noTimes", "", false, "Don't sync modification time of files") hugoCmdV = HugoCmd - // for Bash autocomplete + // For bash-completion validConfigFilenames := []string{"json", "js", "yaml", "yml", "toml", "tml"} HugoCmd.PersistentFlags().SetAnnotation("config", cobra.BashCompFilenameExt, validConfigFilenames) + HugoCmd.PersistentFlags().SetAnnotation("source", cobra.BashCompSubdirsInDir, []string{}) + HugoCmd.PersistentFlags().SetAnnotation("cacheDir", cobra.BashCompSubdirsInDir, []string{}) + HugoCmd.PersistentFlags().SetAnnotation("destination", cobra.BashCompSubdirsInDir, []string{}) HugoCmd.PersistentFlags().SetAnnotation("theme", cobra.BashCompSubdirsInDir, []string{"themes"}) + HugoCmd.PersistentFlags().SetAnnotation("logFile", cobra.BashCompFilenameExt, []string{}) // This message will be shown to Windows users if Hugo is opened from explorer.exe cobra.MousetrapHelpText = `