summaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
authorBen Mezger <me@benmezger.nl>2021-02-02 20:03:31 -0300
committerAnthony Fok <foka@debian.org>2021-02-04 15:32:51 -0700
commitd36fd5b3ee6989203de2a29b1de67521fd1c8ea5 (patch)
treef55a694f63534cc286550c1ca2c90038bfec0040 /commands
parenta7c515e1b56e8cab34ca2647b4116904df9c8250 (diff)
Refactor: Write to stdout by default
Diffstat (limited to 'commands')
-rw-r--r--commands/genautocomplete.go28
1 files changed, 19 insertions, 9 deletions
diff --git a/commands/genautocomplete.go b/commands/genautocomplete.go
index 044a052e6..3f3bf9c87 100644
--- a/commands/genautocomplete.go
+++ b/commands/genautocomplete.go
@@ -14,6 +14,9 @@
package commands
import (
+ "io"
+ "os"
+
"github.com/spf13/cobra"
jww "github.com/spf13/jwalterweatherman"
)
@@ -53,13 +56,21 @@ or just source them in directly:
RunE: func(cmd *cobra.Command, args []string) error {
var err error
+ var target io.Writer
+
+ if cc.autocompleteTarget == "" {
+ target = os.Stdout
+ } else {
+ target, _ = os.OpenFile(cc.autocompleteTarget, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
+ }
+
switch cc.autocompleteType {
case "zsh":
- err = cmd.Root().GenZshCompletionFile(cc.autocompleteTarget)
+ err = cmd.Root().GenZshCompletion(target)
case "bash":
- err = cmd.Root().GenBashCompletionFile(cc.autocompleteTarget)
+ err = cmd.Root().GenBashCompletion(target)
case "fish":
- err = cmd.Root().GenFishCompletionFile(cc.autocompleteTarget, true)
+ err = cmd.Root().GenFishCompletion(target, true)
default:
return newUserError("Unsupported completion type")
}
@@ -68,16 +79,15 @@ or just source them in directly:
return err
}
- jww.FEEDBACK.Println(cc.autocompleteType+" completion file for Hugo saved to", cc.autocompleteTarget)
+ if cc.autocompleteTarget != "" {
+ jww.FEEDBACK.Println(cc.autocompleteType+" completion file for Hugo saved to", cc.autocompleteTarget)
+ }
return nil
},
})
- cc.cmd.PersistentFlags().StringVarP(&cc.autocompleteTarget, "completionfile", "", "/etc/bash_completion.d/hugo.sh", "autocompletion file")
- cc.cmd.PersistentFlags().StringVarP(&cc.autocompleteType, "type", "", "bash", "autocompletion type (zsh, bash, fish or powershell)")
-
- // For bash-completion
- cc.cmd.PersistentFlags().SetAnnotation("completionfile", cobra.BashCompFilenameExt, []string{})
+ cc.cmd.PersistentFlags().StringVarP(&cc.autocompleteTarget, "completionfile", "f", "", "autocompletion file, defaults to stdout")
+ cc.cmd.PersistentFlags().StringVarP(&cc.autocompleteType, "type", "t", "bash", "autocompletion type (zsh, bash or fish)")
return cc
}