| - |
use std::error::Error;
|
| - |
|
| - |
use log::info;
|
| - |
|
| - |
use radicle::Profile;
|
| - |
use radicle_ci_broker::{error::BrokerError, event::NodeEventSource, filter::EventFilter};
|
| - |
|
| - |
fn main() {
|
| - |
if let Err(e) = fallible_main() {
|
| - |
eprintln!("ERROR: {}", e);
|
| - |
let mut e = e.source();
|
| - |
while let Some(source) = e {
|
| - |
eprintln!("caused by: {}", source);
|
| - |
e = source.source();
|
| - |
}
|
| - |
}
|
| - |
}
|
| - |
|
| - |
fn fallible_main() -> Result<(), BrokerError> {
|
| - |
pretty_env_logger::init();
|
| - |
info!("ci-broker-prototype starts");
|
| - |
|
| - |
let mut filters = vec![];
|
| - |
for filename in std::env::args().skip(1) {
|
| - |
let mut more = EventFilter::from_file(std::path::Path::new(&filename))?;
|
| - |
filters.append(&mut more);
|
| - |
}
|
| - |
info!("node event filters: {:#?}", filters);
|
| - |
|
| - |
let profile = Profile::load()?;
|
| - |
let mut source = NodeEventSource::new(&profile)?;
|
| - |
for filter in filters {
|
| - |
source.allow(filter);
|
| - |
}
|
| - |
|
| - |
loop {
|
| - |
for e in source.event()? {
|
| - |
println!("{:#?}", e);
|
| - |
}
|
| - |
}
|
| - |
}
|