Implementing 'rustpkg init'.

This will initialize a new workspace.
This commit is contained in:
Steve Klabnik
2013-09-16 14:59:34 -07:00
parent 0ec4d34b3f
commit 77bbf23b4a
3 changed files with 24 additions and 1 deletions
+16
View File
@@ -189,6 +189,7 @@ fn install_no_build(&self,
fn test(&self);
fn uninstall(&self, _id: &str, _vers: Option<~str>);
fn unprefer(&self, _id: &str, _vers: Option<~str>);
fn init(&self);
}
impl CtxMethods for BuildContext {
@@ -319,6 +320,13 @@ fn run(&self, cmd: &str, args: ~[~str]) {
"test" => {
self.test();
}
"init" => {
if args.len() != 0 {
return usage::init();
} else {
self.init();
}
}
"uninstall" => {
if args.len() < 1 {
return usage::uninstall();
@@ -540,6 +548,13 @@ fn test(&self) {
fail!("test not yet implemented");
}
fn init(&self) {
os::mkdir_recursive(&Path("src"), U_RWX);
os::mkdir_recursive(&Path("lib"), U_RWX);
os::mkdir_recursive(&Path("bin"), U_RWX);
os::mkdir_recursive(&Path("build"), U_RWX);
}
fn uninstall(&self, _id: &str, _vers: Option<~str>) {
fail!("uninstall not yet implemented");
}
@@ -688,6 +703,7 @@ pub fn main_args(args: &[~str]) {
~"list" => usage::list(),
~"prefer" => usage::prefer(),
~"test" => usage::test(),
~"init" => usage::init(),
~"uninstall" => usage::uninstall(),
~"unprefer" => usage::unprefer(),
_ => usage::general()
+7
View File
@@ -148,3 +148,10 @@ pub fn test() {
Options:
-c, --cfg Pass a cfg flag to the package script");
}
pub fn init() {
io::println("rustpkg init name
This makes a new workspace for working on a project named name.
");
}
+1 -1
View File
@@ -33,7 +33,7 @@
// you could update the match in rustpkg.rc but forget to update this list. I think
// that should be fixed.
static COMMANDS: &'static [&'static str] =
&["build", "clean", "do", "info", "install", "list", "prefer", "test", "uninstall",
&["build", "clean", "do", "info", "init", "install", "list", "prefer", "test", "uninstall",
"unprefer"];