wslc 0.1.8

Safe Rust wrapper for Microsoft WSL Containers
use wslc::{ImagePullOptions, Service, Session};

mod common;

const ALPINE_IMAGE: &str = "docker.io/library/alpine:latest";

fn main() -> wslc::Result<()> {
    Service::ensure_available()?;

    let name = common::unique_name("wslc-list-images");
    let session = Session::builder(&name, common::storage_path(&name))
        .cpu_count(2)
        .memory_mb(2048)
        .terminate_on_drop(true)
        .start()?;

    println!("images before pull: {:?}", session.list_images()?);

    session
        .pull_image(ImagePullOptions::new(ALPINE_IMAGE))
        .on_progress(|p| println!("pull: {:?} {}", p.status, p.id))
        .run()?;

    for image in session.list_images()? {
        println!(
            "image: {} size={} created={}",
            image.name, image.size_bytes, image.created_unix_time
        );
    }

    session.terminate()?;
    Ok(())
}