use clap;
use serde_json;
use api::Api;
use error::DokResult;
pub fn list(matches: &clap::ArgMatches) -> DokResult<()> {
let reg = Api::new(matches.value_of("REGISTRY").unwrap())?;
#[derive(Deserialize)]
struct CatalogResponse {
repositories: Vec<String>,
}
let repos_json = reg.catalog()?;
let parsed: CatalogResponse = serde_json::from_str(&repos_json)?;
for repo in &parsed.repositories {
println!("{}", repo);
}
Ok(())
}
pub fn tags(matches: &clap::ArgMatches) -> DokResult<()> {
let reg = Api::new(matches.value_of("IMAGE").unwrap())?;
#[derive(Deserialize)]
struct TagsResponse {
tags: Vec<String>,
}
let tags_json = reg.tags()?;
let parsed: TagsResponse = serde_json::from_str(&tags_json)?;
for tag in &parsed.tags {
println!("{}", tag);
}
Ok(())
}