Skip to content

Commit

Permalink
Merge pull request #33 from EspressoSystems/update_to_clap_4
Browse files Browse the repository at this point in the history
Update to clap 4.0
  • Loading branch information
nyospe authored Oct 6, 2022
2 parents 2ade0c9 + 3f83482 commit 4ba55dd
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 16 deletions.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ base64 = "0.13.0"
web-sys = { version = "0.3.49", features = ["console", "Headers", "RequestInit", "RequestMode", "Request", "Response", "Window"] }

# Command line argument processing
structopt = { version = "0.3", features = ["paw"] }
clap = { version = "4.0", features = ["derive"] }

[dev-dependencies]
getrandom = { version = "0.2", features = ["js"] }
Expand Down
27 changes: 12 additions & 15 deletions src/main.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use clap::Parser;
use std::io;
use std::io::{Read, Write};
use std::process::exit;
use structopt::StructOpt;
use tagged_base64::TaggedBase64;

#[derive(StructOpt)]
#[structopt(
#[derive(Parser)]
#[command(
name = "Tagged Base64",
about = "Converts raw data to and from TaggedBase64 notation"
)]
Expand All @@ -14,7 +14,7 @@ pub struct MainOpt {
///
/// To write the raw data to a file,
/// `tagged_base64 -d ADVENTURE~WFlaWllD > adventure.bin`
#[structopt(long = "decode", short = "d")]
#[arg(long = "decode", short = 'd')]
pub tb64_str: Option<String>,

/// Tag for raw data from stdin.
Expand All @@ -26,22 +26,22 @@ pub struct MainOpt {
/// `tagged_base64 --tag ADVENTURE < adventure.bin`
/// or
/// `cat adventure.bin | tagged_base64 --tag ADVENTURE`
#[structopt(long = "tag")]
#[arg(long = "tag")]
pub tag: Option<String>,
}

fn main() {
let tb64 = MainOpt::from_args().tb64_str;
let tag = MainOpt::from_args().tag;
let parsed = MainOpt::parse();
let tb64 = &parsed.tb64_str;
let tag = &parsed.tag;
if tb64.is_some() == tag.is_some() {
println!(
"tagged_base64: one argument required\n\
Try 'tagged_base64 --help' for more information."
);
exit(2);
} else if MainOpt::from_args().tb64_str.is_some() {
let s: String = MainOpt::from_args().tb64_str.unwrap();
match TaggedBase64::parse(&s) {
} else if let Some(tb64_str) = &parsed.tb64_str {
match TaggedBase64::parse(tb64_str) {
Ok(v) => {
io::stdout().write_all(&v.value()).unwrap();
exit(0);
Expand All @@ -51,13 +51,10 @@ fn main() {
exit(1);
}
};
} else if MainOpt::from_args().tag.is_some() {
} else if let Some(tag) = &parsed.tag {
let mut v = Vec::new();
io::stdin().read_to_end(&mut v).unwrap();
println!(
"{}",
TaggedBase64::new(&MainOpt::from_args().tag.unwrap(), &v).unwrap()
);
println!("{}", TaggedBase64::new(tag, &v).unwrap());
exit(0);
}
}

0 comments on commit 4ba55dd

Please sign in to comment.