From a1d6bbd31f1ea4ea30dfea6539202134e8b8fc27 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Wed, 2 Aug 2023 09:58:42 +0100 Subject: [PATCH] Add rclone completion powershell - basic implementation only --- .../genautocomplete_powershell.go | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 cmd/genautocomplete/genautocomplete_powershell.go diff --git a/cmd/genautocomplete/genautocomplete_powershell.go b/cmd/genautocomplete/genautocomplete_powershell.go new file mode 100644 index 000000000..84e1ea16b --- /dev/null +++ b/cmd/genautocomplete/genautocomplete_powershell.go @@ -0,0 +1,44 @@ +package genautocomplete + +import ( + "log" + "os" + + "github.com/rclone/rclone/cmd" + "github.com/spf13/cobra" +) + +func init() { + completionDefinition.AddCommand(powershellCommandDefinition) +} + +var powershellCommandDefinition = &cobra.Command{ + Use: "powershell [output_file]", + Short: `Output powershell completion script for rclone.`, + Long: ` +Generate the autocompletion script for powershell. + +To load completions in your current shell session: + + rclone completion powershell | Out-String | Invoke-Expression + +To load completions for every new session, add the output of the above command +to your powershell profile. + +If output_file is "-" or missing, then the output will be written to stdout. +`, + Run: func(command *cobra.Command, args []string) { + cmd.CheckArgs(0, 1, command, args) + if len(args) == 0 || (len(args) > 0 && args[0] == "-") { + err := cmd.Root.GenPowerShellCompletion(os.Stdout) + if err != nil { + log.Fatal(err) + } + return + } + err := cmd.Root.GenPowerShellCompletionFile(args[0]) + if err != nil { + log.Fatal(err) + } + }, +}