1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use std::io::{self, Write};

use storage::Backend;
use super::LalResult;

/// Prints a list of versions associated with a component
pub fn query(backend: &Backend, env: Option<&str>, component: &str, last: bool) -> LalResult<()> {
    if last {
        let ver = backend.get_latest_version(component, env)?;
        println!("{}", ver);
    } else {
        let vers = backend.get_versions(component, env)?;
        for v in vers {
            println!("{}", v);
            // needed because sigpipe handling is broken for stdout atm
            // see #36 - can probably be taken out in rust 1.16 or 1.17
            // if `lal query media-engine | head` does not crash
            if io::stdout().flush().is_err() {
                return Ok(());
            }
        }
    }
    Ok(())
}