use ::std::time::Duration;
use ::clap::StructOpt;
use ::parse_duration0::parse as parse_dur;
use crate::common::CommandArgs;
#[derive(StructOpt, Debug)]
#[structopt(
name = "locked",
about = "Do not start a command until a given lock is released."
)]
pub struct LockedArgs {
#[structopt(short = 'f', long = "lock-key", default_value = "%{pwd}.lock")]
pub lock_key: String,
#[structopt(
parse(try_from_str = parse_dur),
short = 't',
long = "timeout",
default_value = "15 min"
)]
pub timeout: Duration,
#[structopt(short = 'p', long = "progress")]
pub show_progress: bool,
#[structopt(short = 'r', long = "read")]
pub read: bool,
#[structopt(short = 's', long = "show")]
pub show: bool,
#[structopt(long = "unlock")]
pub unlock: bool,
#[structopt(subcommand)]
pub cmd: CommandArgs,
}
#[test]
fn test_cli_args() {
use clap::IntoApp;
LockedArgs::into_app().debug_assert()
}