cli/
cli.rs

1use std::io::Cursor;
2
3use bar_config::Bar;
4
5fn main() {
6    let input = Cursor::new(String::from(
7        "\
8         height: 30\n\
9         monitors:\n\
10         - { name: \"DVI-1\" }\n\
11         left:\n\
12         - { text: \"Hello, World!\" }\n\
13         center:\n\
14         - { name: \"clock\" }\n\
15         right:\n\
16         - { text: \"VOLUME\" }",
17    ));
18
19    let mut bar = Bar::load(input).unwrap();
20
21    print_bar(&bar);
22    loop {
23        let _ = bar.recv();
24        print_bar(&bar);
25    }
26}
27
28fn print_bar(bar: &Bar) {
29    let config = bar.lock();
30    for comp in config
31        .left
32        .iter()
33        .chain(&config.center)
34        .chain(&config.right)
35    {
36        if let Some(text) = comp.text() {
37            print!("{}\t", text);
38        }
39    }
40    println!("");
41}