rclone/cmd/genautocomplete/genautocomplete_bash.go

55 lines
1.2 KiB
Go
Raw Normal View History

2017-08-31 22:52:51 +08:00
package genautocomplete
import (
"log"
"os"
2017-08-31 22:52:51 +08:00
"github.com/rclone/rclone/cmd"
2017-08-31 22:52:51 +08:00
"github.com/spf13/cobra"
)
func init() {
completionDefinition.AddCommand(bashCommandDefinition)
}
var bashCommandDefinition = &cobra.Command{
Use: "bash [output_file]",
Short: `Output bash completion script for rclone.`,
Long: `
Generates a bash shell autocompletion script for rclone.
This writes to /etc/bash_completion.d/rclone by default so will
probably need to be run with sudo or as root, e.g.
2017-08-31 22:52:51 +08:00
sudo rclone genautocomplete bash
Logout and login again to use the autocompletion scripts, or source
them directly
. /etc/bash_completion
If you supply a command line argument the script will be written
there.
If output_file is "-", then the output will be written to stdout.
2017-08-31 22:52:51 +08:00
`,
Run: func(command *cobra.Command, args []string) {
cmd.CheckArgs(0, 1, command, args)
out := "/etc/bash_completion.d/rclone"
if len(args) > 0 {
if args[0] == "-" {
err := cmd.Root.GenBashCompletion(os.Stdout)
if err != nil {
log.Fatal(err)
}
return
}
2017-08-31 22:52:51 +08:00
out = args[0]
}
err := cmd.Root.GenBashCompletionFile(out)
if err != nil {
log.Fatal(err)
}
},
}