From: Carl Lerche Date: Wed, 28 May 2014 00:21:28 +0000 (-0700) Subject: Extra log output + polish rough edges X-Git-Tag: archive/raspbian/0.35.0-2+rpi1~3^2^2^2^2^2^2^2~1045 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c040b89141de344c8329d84c990151a9738aab4f;p=cargo.git Extra log output + polish rough edges --- diff --git a/src/cargo/core/manifest.rs b/src/cargo/core/manifest.rs index cb188e1cd..4ee193dcf 100644 --- a/src/cargo/core/manifest.rs +++ b/src/cargo/core/manifest.rs @@ -165,7 +165,7 @@ impl Target { */ type TomlLibTarget = TomlTarget; -type TomlExecTarget = TomlTarget; +type TomlBinTarget = TomlTarget; #[deriving(Decodable,Encodable,Eq,Clone,Show)] pub struct Project { @@ -182,8 +182,8 @@ pub struct Project { pub struct TomlManifest { project: Box, lib: Option<~[TomlLibTarget]>, - bin: Option<~[TomlExecTarget]>, - dependencies: Option> + bin: Option<~[TomlBinTarget]>, + dependencies: Option>, } impl TomlManifest { @@ -228,20 +228,22 @@ impl Project { } } -#[deriving(Decodable,Encodable,Eq,Clone)] +#[deriving(Decodable,Encodable,Eq,Clone,Show)] struct TomlTarget { name: String, path: Option } -fn normalize(lib: &Option<~[TomlLibTarget]>, bin: &Option<~[TomlExecTarget]>) -> Vec { +fn normalize(lib: &Option<~[TomlLibTarget]>, bin: &Option<~[TomlBinTarget]>) -> Vec { + log!(4, "normalizing toml targets; lib={}; bin={}", lib, bin); + fn lib_targets(dst: &mut Vec, libs: &[TomlLibTarget]) { let l = &libs[0]; let path = l.path.clone().unwrap_or_else(|| format!("src/{}.rs", l.name)); dst.push(Target::lib_target(l.name.as_slice(), &Path::new(path))); } - fn bin_targets(dst: &mut Vec, bins: &[TomlExecTarget], default: |&TomlExecTarget| -> String) { + fn bin_targets(dst: &mut Vec, bins: &[TomlBinTarget], default: |&TomlBinTarget| -> String) { for bin in bins.iter() { let path = bin.path.clone().unwrap_or_else(|| default(bin)); dst.push(Target::bin_target(bin.name.as_slice(), &Path::new(path))); diff --git a/src/cargo/core/resolver.rs b/src/cargo/core/resolver.rs index 6523913c9..bf31e24ce 100644 --- a/src/cargo/core/resolver.rs +++ b/src/cargo/core/resolver.rs @@ -26,7 +26,7 @@ pub fn resolve(deps: &[Dependency], registry: &Registry) -> CargoResult 0, "no matches for {}", curr.get_name()); // Temporary, but we must have exactly one option to satisfy the dep assert!(opts.len() == 1, "invalid num of results {}", opts.len()); diff --git a/src/cargo/ops/cargo_read_manifest.rs b/src/cargo/ops/cargo_read_manifest.rs index 53f175fcd..ec57001bc 100644 --- a/src/cargo/ops/cargo_read_manifest.rs +++ b/src/cargo/ops/cargo_read_manifest.rs @@ -23,5 +23,6 @@ fn load_toml(root: toml::Value) -> CargoResult { } fn to_cargo_err(err: toml::Error) -> CargoError { + debug!("toml; err={}", err); toml_error("Problem loading manifest", err) } diff --git a/src/cargo/ops/cargo_rustc.rs b/src/cargo/ops/cargo_rustc.rs index dbd2441b1..54ca4cf8f 100644 --- a/src/cargo/ops/cargo_rustc.rs +++ b/src/cargo/ops/cargo_rustc.rs @@ -71,6 +71,7 @@ fn prepare_rustc(root: &Path, target: &core::Target, dest: &Path, deps: &[core:: util::process("rustc") .cwd(root.clone()) .args(args.as_slice()) + .env("RUST_LOG", None) // rustc is way too noisy } fn build_base_args(into: &mut Args, target: &core::Target, dest: &Path) { diff --git a/src/cargo/sources/path.rs b/src/cargo/sources/path.rs index ced38f851..509072f44 100644 --- a/src/cargo/sources/path.rs +++ b/src/cargo/sources/path.rs @@ -11,6 +11,7 @@ pub struct PathSource { impl PathSource { pub fn new(paths: Vec) -> PathSource { + log!(4, "new; paths={}", display(paths.as_slice())); PathSource { paths: paths } } } @@ -28,7 +29,10 @@ impl Source for PathSource { Ok(self.paths.iter().filter_map(|path| { match read_manifest(path) { Ok(ref pkg) => Some(pkg.get_summary().clone()), - Err(_) => None + Err(e) => { + log!(4, "failed to read manifest; path={}; err={}", path.display(), e); + None + } } }).collect()) } @@ -51,3 +55,7 @@ fn read_manifest(path: &Path) -> CargoResult { let joined = path.join("Cargo.toml"); ops::read_manifest(joined.as_str().unwrap()) } + +fn display(paths: &[Path]) -> Vec { + paths.iter().map(|p| p.display().to_str()).collect() +} diff --git a/src/cargo/util/process_builder.rs b/src/cargo/util/process_builder.rs index 972d40949..5ad4a5fd5 100644 --- a/src/cargo/util/process_builder.rs +++ b/src/cargo/util/process_builder.rs @@ -51,6 +51,19 @@ impl ProcessBuilder { self } + pub fn env(mut self, key: &str, val: Option<&str>) -> ProcessBuilder { + match val { + Some(v) => { + self.env.insert(key.to_strbuf(), v.to_strbuf()); + }, + None => { + self.env.remove(&key.to_strbuf()); + } + } + + self + } + // TODO: should InheritFd be hardcoded? pub fn exec(&self) -> CargoResult<()> { let mut command = self.build_command();