1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//! Command `tag`
use crate::{registry::Registry, result::Result};

/// Exec comamnd `tag`
pub fn exec(limit: usize, update: bool) -> Result<()> {
    let registry = Registry::new()?;
    if update {
        println!("Fetching registry...");
        registry.update()?;
    }

    // Get tags
    let mut tags = registry.tag()?;
    if tags.len() == 0 {
        registry.update()?;
    }

    let last = if limit < tags.len() || limit < 1 {
        limit
    } else {
        tags.len()
    };

    tags.reverse();
    println!("{}", &tags[..last].join("\n"));
    Ok(())
}