Show More
@@ -33,6 +33,12 b' where' | |||
|
33 | 33 | where |
|
34 | 34 | P: AsRef<Path>; |
|
35 | 35 | |
|
36 | /// Updates the environment variables of the server. | |
|
37 | fn set_env_vars_os<I, P>(self, vars: I) -> OneShotRequest<C> | |
|
38 | where | |
|
39 | I: IntoIterator<Item = (P, P)>, | |
|
40 | P: AsRef<OsStr>; | |
|
41 | ||
|
36 | 42 | /// Runs the specified Mercurial command with cHg extension. |
|
37 | 43 | fn run_command_chg<I, P, H>(self, handler: H, args: I) -> ChgRunCommand<C, H> |
|
38 | 44 | where |
@@ -61,6 +67,14 b' where' | |||
|
61 | 67 | OneShotRequest::start_with_args(self, b"chdir", dir.as_ref().as_os_str().as_bytes()) |
|
62 | 68 | } |
|
63 | 69 | |
|
70 | fn set_env_vars_os<I, P>(self, vars: I) -> OneShotRequest<C> | |
|
71 | where | |
|
72 | I: IntoIterator<Item = (P, P)>, | |
|
73 | P: AsRef<OsStr>, | |
|
74 | { | |
|
75 | OneShotRequest::start_with_args(self, b"setenv", message::pack_env_vars_os(vars)) | |
|
76 | } | |
|
77 | ||
|
64 | 78 | fn run_command_chg<I, P, H>(self, handler: H, args: I) -> ChgRunCommand<C, H> |
|
65 | 79 | where |
|
66 | 80 | I: IntoIterator<Item = P>, |
@@ -24,7 +24,7 b' use super::clientext::ChgClientExt;' | |||
|
24 | 24 | use super::message::ServerSpec; |
|
25 | 25 | use super::procutil; |
|
26 | 26 | |
|
27 | const REQUIRED_SERVER_CAPABILITIES: &[&str] = &["attachio", "chdir", "runcommand"]; | |
|
27 | const REQUIRED_SERVER_CAPABILITIES: &[&str] = &["attachio", "chdir", "runcommand", "setenv"]; | |
|
28 | 28 | |
|
29 | 29 | /// Helper to connect to and spawn a server process. |
|
30 | 30 | #[derive(Clone, Debug)] |
@@ -86,6 +86,11 b' impl Locator {' | |||
|
86 | 86 | .set_current_dir(&loc.current_dir) |
|
87 | 87 | .map(|client| (loc, client)) |
|
88 | 88 | }) |
|
89 | .and_then(|(loc, client)| { | |
|
90 | client | |
|
91 | .set_env_vars_os(loc.env_vars.iter().cloned()) | |
|
92 | .map(|client| (loc, client)) | |
|
93 | }) | |
|
89 | 94 | } |
|
90 | 95 | |
|
91 | 96 | /// Spawns new server process and connects to it. |
General Comments 0
You need to be logged in to leave comments.
Login now