Workspace::new(&root, config)
}
+ fn jobs_from_args(args: &ArgMatches) -> Option<u32> { //FIXME: validation
+ args.value_of("jobs").and_then(|v| v.parse().ok())
+ }
+
fn compile_options_from_args<'a>(
config: &'a Config,
args: &'a ArgMatches<'a>,
let opts = CompileOptions {
config,
- jobs: args.value_of("jobs").and_then(|v| v.parse().ok()),
+ jobs: jobs_from_args(args),
target: args.value_of("target"),
features: &values(args, "features"),
all_features: args.is_present("all-features"),
to_remove: args.values_of("remove")
.map(|xs| xs.map(|s| s.to_string()).collect()),
list: args.is_present("list"),
- registry: args.value_of("registry").map(|s| s.to_string()),
+ registry,
};
ops::modify_owners(config, &opts)?;
return Ok(());
}
+ ("package", Some(args)) => {
+ let ws = workspace_from_args(config, args)?;
+ ops::package(&ws, &ops::PackageOpts {
+ config,
+ verify: !args.is_present("no-verify"),
+ list: args.is_present("list"),
+ check_metadata: !args.is_present("no-metadata"),
+ allow_dirty: args.is_present("allow-dirty"),
+ target: args.value_of("target"),
+ jobs: jobs_from_args(args),
+ registry: None,
+ })?;
+ return Ok(());
+ }
_ => return Ok(())
}
}
metadata::cli(),
new::cli(),
owner::cli(),
+ package::cli(),
])
;
app
mod metadata;
mod new;
mod owner;
+mod package;
mod utils {
use clap::{self, SubCommand, AppSettings};
--- /dev/null
+use super::utils::*;
+
+pub fn cli() -> App {
+ subcommand("package")
+ .about("Assemble the local package into a distributable tarball")
+ .arg(opt("list", "Print files included in a package without making one").short("l"))
+ .arg(opt("no-verify", "Don't verify the contents by building them"))
+ .arg(opt("no-metadata", "Ignore warnings about a lack of human-usable metadata"))
+ .arg(opt("allow-dirty", "Allow dirty working directories to be packaged"))
+ .arg_target_triple("Build for the target triple")
+ .arg_manifest_path()
+ .arg_jobs()
+}