LEFT | RIGHT |
1 // Copyright 2012, 2013 Canonical Ltd. | 1 // Copyright 2012, 2013 Canonical Ltd. |
2 // Licensed under the AGPLv3, see LICENCE file for details. | 2 // Licensed under the AGPLv3, see LICENCE file for details. |
3 | 3 |
4 package main | 4 package main |
5 | 5 |
6 import ( | 6 import ( |
7 "fmt" | 7 "fmt" |
8 "strings" | 8 "strings" |
9 | 9 |
10 "launchpad.net/juju-core/cmd" | 10 "launchpad.net/juju-core/cmd" |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 // Run resolves c.Target to a machine, or host of a unit and | 96 // Run resolves c.Target to a machine, or host of a unit and |
97 // forks ssh with c.Args, if provided. | 97 // forks ssh with c.Args, if provided. |
98 func (c *SCPCommand) Run(ctx *cmd.Context) error { | 98 func (c *SCPCommand) Run(ctx *cmd.Context) error { |
99 var err error | 99 var err error |
100 c.apiClient, err = c.initAPIClient() | 100 c.apiClient, err = c.initAPIClient() |
101 if err != nil { | 101 if err != nil { |
102 return err | 102 return err |
103 } | 103 } |
104 defer c.apiClient.Close() | 104 defer c.apiClient.Close() |
105 | 105 |
106 » var options *ssh.Options | 106 » options, err := c.getSSHOptions(false) |
107 » if c.proxy, err = c.proxySSH(); err != nil { | 107 » if err != nil { |
108 return err | 108 return err |
109 } else if c.proxy { | |
110 options = new(ssh.Options) | |
111 if err := c.setProxyCommand(options); err != nil { | |
112 return err | |
113 } | |
114 } | 109 } |
115 args, err := expandArgs(c.Args, c.hostFromTarget) | 110 args, err := expandArgs(c.Args, c.hostFromTarget) |
116 if err != nil { | 111 if err != nil { |
117 return err | 112 return err |
118 } | 113 } |
119 return ssh.Copy(args, options) | 114 return ssh.Copy(args, options) |
120 } | 115 } |
LEFT | RIGHT |