rust/chg/src/main.rs
changeset 44681 00ac60658654
parent 44673 0a2516efc463
child 44683 065048e66f32
equal deleted inserted replaced
44680:43513444bb88 44681:00ac60658654
     7 extern crate futures;
     7 extern crate futures;
     8 extern crate log;
     8 extern crate log;
     9 extern crate tokio;
     9 extern crate tokio;
    10 extern crate tokio_hglib;
    10 extern crate tokio_hglib;
    11 
    11 
    12 use chg::locator::Locator;
    12 use chg::locator::{self, Locator};
    13 use chg::procutil;
    13 use chg::procutil;
    14 use chg::{ChgClientExt, ChgUiHandler};
    14 use chg::{ChgClientExt, ChgUiHandler};
    15 use futures::sync::oneshot;
    15 use futures::sync::oneshot;
    16 use std::env;
    16 use std::env;
    17 use std::io;
    17 use std::io;
    71     });
    71     });
    72     process::exit(code);
    72     process::exit(code);
    73 }
    73 }
    74 
    74 
    75 fn run() -> io::Result<i32> {
    75 fn run() -> io::Result<i32> {
    76     let loc = Locator::prepare_from_env()?;
    76     let mut loc = Locator::prepare_from_env()?;
       
    77     loc.set_early_args(locator::collect_early_args(env::args_os().skip(1)));
    77     let handler = ChgUiHandler::new();
    78     let handler = ChgUiHandler::new();
    78     let (result_tx, result_rx) = oneshot::channel();
    79     let (result_tx, result_rx) = oneshot::channel();
    79     let fut = loc
    80     let fut = loc
    80         .connect()
    81         .connect()
    81         .and_then(|(_, client)| client.attach_io(io::stdin(), io::stdout(), io::stderr()))
    82         .and_then(|(_, client)| client.attach_io(io::stdin(), io::stdout(), io::stderr()))