obnam 0.8.0

a backup program
Documentation
//! The `backup` subcommand.

use crate::config::ClientConfig;
use crate::dbgen::{schema_version, DEFAULT_SCHEMA_MAJOR, SCHEMA_MAJORS};
use crate::error::ObnamError;

use structopt::StructOpt;

/// List supported backup schema versions.
#[derive(Debug, StructOpt)]
pub struct ListSchemaVersions {
    /// List only the default version.
    #[structopt(long)]
    default_only: bool,
}

impl ListSchemaVersions {
    /// Run the command.
    pub fn run(&self, _config: &ClientConfig) -> Result<(), ObnamError> {
        if self.default_only {
            let schema = schema_version(DEFAULT_SCHEMA_MAJOR)?;
            println!("{}", schema);
        } else {
            for major in SCHEMA_MAJORS {
                let schema = schema_version(*major)?;
                println!("{}", schema);
            }
        }
        Ok(())
    }
}