X-Git-Url: https://code.octet-stream.net/hashgood/blobdiff_plain/1dec1ec82f55d639d9fad0d0933545aa509c4272..0f159178b5aac4d92a321ad49d53f382d0b64909:/src/main.rs?ds=sidebyside diff --git a/src/main.rs b/src/main.rs index 2f1e7f3..f0bf09c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,6 +16,7 @@ mod verify; #[structopt(name = "hashgood")] pub struct Opt { /// Read the hash from the clipboard + #[cfg(feature = "paste")] #[structopt(short = "p", long = "paste")] paste: bool, @@ -36,6 +37,19 @@ pub struct Opt { hash: Option, } +impl Opt { + fn get_paste(&self) -> bool { + #[cfg(feature = "paste")] + { + return self.paste; + } + #[cfg(not(feature = "paste"))] + { + return false; + } + } +} + /// Types of supported digest algorithm #[derive(Debug, PartialEq, Copy, Clone)] pub enum Algorithm { @@ -179,12 +193,12 @@ fn hashgood() -> Result<(), Box> { fn get_verified_options() -> Result { let opt = Opt::from_args(); let hash_methods = - opt.hash.is_some() as i32 + opt.paste as i32 + opt.hash_file.is_some() as i32; + opt.hash.is_some() as i32 + opt.get_paste() as i32 + opt.hash_file.is_some() as i32; if hash_methods > 1 { if opt.hash.is_some() { eprintln!("* specified as command line argument"); } - if opt.paste { + if opt.get_paste() { eprintln!("* paste from clipboard (-p)") } if opt.hash_file.is_some() {