123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- #![feature(extract_if)]
- #![feature(io_error_more)]
- #[macro_use]
- extern crate lazy_static;
- pub extern crate clap;
- extern crate log;
- extern crate serde;
- extern crate serde_json;
- #[cfg(test)]
- extern crate test_base;
- use std::{path::PathBuf, process::exit, sync::Arc};
- use context::DadkUserExecuteContext;
- use log::info;
- use parser::task::DADKTask;
- use crate::scheduler::Scheduler;
- pub mod context;
- pub mod executor;
- pub mod parser;
- mod scheduler;
- mod utils;
- pub fn dadk_user_main(context: DadkUserExecuteContext) {
- let context = Arc::new(context);
- context.init(context.clone());
-
- info!(
- "DragonOS sysroot dir: {}",
- context
- .sysroot_dir()
- .map_or_else(|| "None".to_string(), |d| d.display().to_string())
- );
- info!(
- "Config dir: {}",
- context
- .config_dir()
- .map_or_else(|| "None".to_string(), |d| d.display().to_string())
- );
- info!("Action: {:?}", context.action());
- info!(
- "Thread num: {}",
- context.thread_num().map_or_else(|| 0, |t| t)
- );
- let mut parser = parser::Parser::new(context.config_dir().unwrap().clone());
- let r = parser.parse();
- if r.is_err() {
- exit(1);
- }
- let tasks: Vec<(PathBuf, DADKTask)> = r.unwrap();
-
- let scheduler = Scheduler::new(
- context.clone(),
- context.sysroot_dir().cloned().unwrap(),
- *context.action(),
- tasks,
- );
- if scheduler.is_err() {
- exit(1);
- }
- let r = scheduler.unwrap().run();
- if r.is_err() {
- exit(1);
- }
- }
|