diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2013-04-24 17:37:59 -0700 |
|---|---|---|
| committer | Tim Chevalier <chevalier@alum.wellesley.edu> | 2013-04-24 17:51:31 -0700 |
| commit | 4e2c8f422aec1aef910fdfdac57f5f66a7465355 (patch) | |
| tree | fb63b27dcf1fe7ce2bc366e7ed70d57ff0414535 /src/librustpkg/workspace.rs | |
| parent | f945e57bd050227bbf92f151303785991173f2fe (diff) | |
rustpkg: Preliminary work on install command
Mostly just tests (that are ignored); install command is still stubbed out.
Diffstat (limited to 'src/librustpkg/workspace.rs')
| -rw-r--r-- | src/librustpkg/workspace.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/librustpkg/workspace.rs b/src/librustpkg/workspace.rs new file mode 100644 index 00000000000..15e2166b24a --- /dev/null +++ b/src/librustpkg/workspace.rs @@ -0,0 +1,34 @@ +// Copyright 2013 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// rustpkg utilities having to do with workspaces + +use path_util::{rust_path, workspace_contains_package_id}; +use util::PkgId; +use core::path::Path; + +pub fn pkg_parent_workspaces(pkgid: PkgId, action: &fn(&Path) -> bool) { + // Using the RUST_PATH, find workspaces that contain + // this package ID + let workspaces = rust_path().filtered(|ws| + workspace_contains_package_id(pkgid, ws)); + if workspaces.is_empty() { + // tjc: make this a condition + fail!(fmt!("Package %s not found in any of \ + the following workspaces: %s", + pkgid.path.to_str(), + rust_path().to_str())); + } + for workspaces.each |ws| { + if action(ws) { + break; + } + } +} \ No newline at end of file |
