build.rs/src/cli.rs

30 lines
782 B
Rust
Raw Normal View History

2020-05-01 10:48:22 +00:00
use structopt::StructOpt;
use std::path::PathBuf;
use std::env;
2020-05-01 10:48:22 +00:00
#[derive(Debug, StructOpt)]
#[structopt(name = "git-build", about = "Update your repositories and trigger tasks")]
pub struct Cli {
#[structopt(short = "f", long = "force")]
2020-05-01 11:19:33 +00:00
pub force: bool,
2020-05-01 10:48:22 +00:00
#[structopt(short = "b", long = "basedir")]
pub basedir: Option<String>,
2020-05-01 10:48:22 +00:00
//#[structopt(def)]
2020-05-01 11:19:33 +00:00
pub tasks: Vec<String>,
2020-05-01 10:48:22 +00:00
}
impl Cli {
pub fn basedir(&self) -> PathBuf {
if let Some(basedir) = &self.basedir {
2020-11-25 20:58:00 +00:00
PathBuf::from(basedir).canonicalize().expect("failed to expand relative path")
} else {
let mut home_path = PathBuf::from(env::var("HOME").expect("No $HOME in env"));
home_path.push(".forgebuild");
home_path
}
}
}