diff --git a/Cargo.lock b/Cargo.lock index 29294221..d82bcb62 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1734,6 +1734,17 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +[[package]] +name = "fd-lock" +version = "4.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce92ff622d6dadf7349484f42c93271a0d49b7cc4d466a936405bacbe10aa78" +dependencies = [ + "cfg-if", + "rustix", + "windows-sys 0.52.0", +] + [[package]] name = "file-logger" version = "0.2.0" @@ -3974,6 +3985,7 @@ dependencies = [ "bitflags", "cfg-if", "clipboard-win", + "fd-lock", "libc", "log", "memchr", diff --git a/brane-cli/Cargo.toml b/brane-cli/Cargo.toml index a80ed768..3713468a 100644 --- a/brane-cli/Cargo.toml +++ b/brane-cli/Cargo.toml @@ -27,7 +27,7 @@ indicatif = "0.17.0" parking_lot = "0.12.1" path-clean = "1.0.0" prettytable = "0.10.0" -rustyline = { version = "15.0.0", default-features = false } +rustyline = { version = "15.0.0", default-features = false, features = ["with-file-history"] } rustyline-derive = "0.11.0" semver = "1.0.0" tar = "0.4.21" diff --git a/brane-cli/src/version.rs b/brane-cli/src/version.rs index ddd16a63..5214b6ad 100644 --- a/brane-cli/src/version.rs +++ b/brane-cli/src/version.rs @@ -89,17 +89,18 @@ impl RemoteVersion { async fn from_instance_info(info: InstanceInfo) -> Result { // Use reqwest for the API call debug!(" > Querying..."); - let mut url: String = info.api.to_string(); + let mut url: String = format!("http://{}", info.api); url.push_str("/version"); let response: Response = reqwest::get(&url).await.map_err(|source| VersionError::RequestError { url: url.clone(), source })?; if response.status() != StatusCode::OK { return Err(VersionError::RequestFailure { url, status: response.status() }); } let version_body: String = response.text().await.map_err(|source| VersionError::RequestBodyError { url: url.clone(), source })?; + let version_str = version_body.strip_prefix("v").unwrap_or(&version_body); // Try to parse the version debug!(" > Parsing remote version..."); - let version = BraneVersion::from_str(&version_body).map_err(|source| VersionError::VersionParseError { raw: version_body, source })?; + let version = BraneVersion::from_str(version_str).map_err(|source| VersionError::VersionParseError { raw: version_body, source })?; // Done! debug!("Remote version number: {}", &version); diff --git a/brane-ctl/src/lifetime.rs b/brane-ctl/src/lifetime.rs index b0361b2c..12932274 100644 --- a/brane-ctl/src/lifetime.rs +++ b/brane-ctl/src/lifetime.rs @@ -821,7 +821,7 @@ pub async fn start( opts.compose_verbose, resolve_exe(exe)?, DockerComposeCommand::Up, - resolve_node(file, "central"), + resolve_node(&file, "central"), &node_config.namespace, overridefile, envs, @@ -864,7 +864,7 @@ pub async fn start( opts.compose_verbose, resolve_exe(exe)?, DockerComposeCommand::Up, - resolve_node(file, "worker"), + resolve_node(&file, "worker"), &node_config.namespace, overridefile, envs, @@ -897,7 +897,7 @@ pub async fn start( opts.compose_verbose, resolve_exe(exe)?, DockerComposeCommand::Up, - resolve_node(file, "proxy"), + resolve_node(&file, "proxy"), &node_config.namespace, overridefile, envs, @@ -949,7 +949,7 @@ pub fn stop(compose_verbose: bool, exe: impl AsRef, file: Option, let envs: HashMap<&str, OsString> = construct_envs(&brane_version, &node_config_path, &node_config)?; // Resolve the filename and deduce the project name - let file: PathBuf = resolve_node(file, match node_config.node.kind() { + let file: PathBuf = resolve_node(&file, match node_config.node.kind() { NodeKind::Central => "central", NodeKind::Worker => "worker", NodeKind::Proxy => "proxy", @@ -1020,7 +1020,7 @@ pub async fn logs(exe: impl AsRef, file: Option, node_config_path: opts.compose_verbose, resolve_exe(exe)?, DockerComposeCommand::Logs, - resolve_node(file, "$NODE"), + resolve_node(&file, "$NODE"), &node_config.namespace, None, envs,