@@ -64,16 +64,11 @@ func newSSHCommand(ctx context.Context, port int, dst string, cmdArgs []string)
6464 return cmd , connArgs , nil
6565}
6666
67- // parseSSHArgs parses SSH arguments into two distinct slices of flags
68- // and command. It returns an error if flags are found after a command
69- // or if a unary flag is provided without an argument.
67+ // parseSSHArgs parses SSH arguments into two distinct slices of flags and command.
68+ // It returns an error if a unary flag is provided without an argument.
7069func parseSSHArgs (args []string ) (cmdArgs []string , command []string , err error ) {
7170 for i := 0 ; i < len (args ); i ++ {
7271 arg := args [i ]
73- if command != nil {
74- command = append (command , arg )
75- continue
76- }
7772
7873 if strings .HasPrefix (arg , "-" ) {
7974 cmdArgs = append (cmdArgs , arg )
@@ -84,9 +79,12 @@ func parseSSHArgs(args []string) (cmdArgs []string, command []string, err error)
8479
8580 cmdArgs = append (cmdArgs , args [i ])
8681 }
87- } else {
88- command = append (command , arg )
82+ continue
8983 }
84+
85+ // if we've started parsing the command, append all further args to it
86+ command = append (command , args [i :]... )
87+ break
9088 }
9189
9290 return cmdArgs , command , nil
0 commit comments