Skip to content

Commit

Permalink
cargo: support github:<user>/<repo>
Browse files Browse the repository at this point in the history
  • Loading branch information
Elly Jones authored and graydon committed Dec 9, 2011
1 parent 0acf170 commit f05eaa4
Showing 1 changed file with 18 additions and 23 deletions.
41 changes: 18 additions & 23 deletions src/cargo/cargo.rs
Original file line number Diff line number Diff line change
Expand Up @@ -194,27 +194,15 @@ fn install_source(c: cargo, path: str) {
}
}

fn install_git(c: cargo, _path: str) {
let wd = tempfile::mkdtemp(c.workdir + fs::path_sep(), "");
alt wd {
some(p) {
run::run_program("git", ["clone", _path, p]);
install_source(c, p);
}
_ { fail "needed temp dir"; }
}
fn install_git(c: cargo, wd: str, _path: str) {
run::run_program("git", ["clone", _path, wd]);
install_source(c, wd);
}

fn install_file(c: cargo, _path: str) {
let wd = tempfile::mkdtemp(c.workdir + fs::path_sep(), "");
alt wd {
some(p) {
run::run_program("tar", ["-x", "--strip-components=1",
"-C", p, "-f", _path]);
install_source(c, p);
}
_ { fail "needed temp dir"; }
}
fn install_file(c: cargo, wd: str, _path: str) {
run::run_program("tar", ["-x", "--strip-components=1",
"-C", wd, "-f", _path]);
install_source(c, wd);
}

fn cmd_install(c: cargo, argv: [str]) {
Expand All @@ -224,12 +212,19 @@ fn cmd_install(c: cargo, argv: [str]) {
ret;
}

let wd = alt tempfile::mkdtemp(c.workdir + fs::path_sep(), "") {
some(_wd) { _wd }
none. { fail "needed temp dir"; }
};

if str::starts_with(argv[2], "git:") {
install_git(c, argv[2]);
}
if str::starts_with(argv[2], "file:") {
install_git(c, wd, argv[2]);
} else if str::starts_with(argv[2], "github:") {
let path = rest(argv[2], 7u);
install_git(c, wd, "git://github.com/" + path);
} else if str::starts_with(argv[2], "file:") {
let path = rest(argv[2], 5u);
install_file(c, path);
install_file(c, wd, path);
}
}

Expand Down

0 comments on commit f05eaa4

Please sign in to comment.