From ff85524210e7863a8fafa10ebe8a307d53b7a8a1 Mon Sep 17 00:00:00 2001 From: Yehuda Katz Date: Mon, 5 May 2014 11:33:04 -0700 Subject: [PATCH] Start breaking up cargo-compile --- src/bin/cargo-compile.rs | 23 ++++++++++++++++++++++- src/cargo/ops/cargo_compile.rs | 1 - 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/bin/cargo-compile.rs b/src/bin/cargo-compile.rs index 9fa581a3e..f83993bde 100644 --- a/src/bin/cargo-compile.rs +++ b/src/bin/cargo-compile.rs @@ -2,11 +2,32 @@ #![allow(deprecated_owned_vector)] extern crate cargo; +extern crate hammer; +extern crate serialize; use cargo::ops::cargo_compile::compile; +use cargo::{CargoResult,ToCargoError}; +use hammer::{FlagDecoder,FlagConfig,FlagConfiguration,HammerError}; +use serialize::Decodable; + +#[deriving(Eq,Clone,Decodable,Encodable)] +pub struct Options { + manifest_path: ~str +} + +impl FlagConfig for Options {} + +fn flags>() -> CargoResult { + let mut decoder = FlagDecoder::new::(std::os::args().tail()); + Decodable::decode(&mut decoder).to_cargo_error(|e: HammerError| e.message, 1) +} + +fn execute() -> CargoResult<()> { + compile(try!(flags::()).manifest_path.as_slice()) +} fn main() { - match compile() { + match execute() { Err(io_error) => fail!("{}", io_error), Ok(_) => return } diff --git a/src/cargo/ops/cargo_compile.rs b/src/cargo/ops/cargo_compile.rs index 3c258289f..e90459549 100644 --- a/src/cargo/ops/cargo_compile.rs +++ b/src/cargo/ops/cargo_compile.rs @@ -17,7 +17,6 @@ use std; use std::vec::Vec; use serialize::{Decodable}; -use hammer::{FlagDecoder,FlagConfig,FlagConfiguration,HammerError}; use std::io; use std::io::BufReader; use std::io::process::{Process,ProcessExit,ProcessOutput,InheritFd,ProcessConfig};