Implement --version switch
This commit is contained in:
parent
88fc07a478
commit
924dd3c8c7
33
src/main.rs
33
src/main.rs
|
@ -32,6 +32,22 @@ use nrgrip::metadata;
|
||||||
use nrgrip::cue_sheet;
|
use nrgrip::cue_sheet;
|
||||||
use nrgrip::raw_audio;
|
use nrgrip::raw_audio;
|
||||||
|
|
||||||
|
const PRETTY_PROGNAME: &'static str = "NRGrip";
|
||||||
|
const VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION");
|
||||||
|
|
||||||
|
fn print_version() {
|
||||||
|
println!("{} v{}", PRETTY_PROGNAME, VERSION.unwrap_or("X.Y.Z"));
|
||||||
|
}
|
||||||
|
|
||||||
|
fn print_usage(prog_name: &str, opts: &Options) {
|
||||||
|
let brief = format!("{prettyprog} - rip Nero Burning ROM audio images
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
{prog} [-icrx] [options] <image.nrg>
|
||||||
|
{prog} [-h | -V]", prettyprog = PRETTY_PROGNAME, prog = prog_name);
|
||||||
|
|
||||||
|
print!("{}", opts.usage(&brief));
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
process::exit(main_main());
|
process::exit(main_main());
|
||||||
|
@ -53,6 +69,8 @@ fn main_main() -> i32 {
|
||||||
"extract the raw audio tracks");
|
"extract the raw audio tracks");
|
||||||
opts.optflag("h", "help",
|
opts.optflag("h", "help",
|
||||||
"print this help message");
|
"print this help message");
|
||||||
|
opts.optflag("V", "version",
|
||||||
|
"print program version");
|
||||||
|
|
||||||
let options = match opts.parse(&args[1..]) {
|
let options = match opts.parse(&args[1..]) {
|
||||||
Ok(options) => options,
|
Ok(options) => options,
|
||||||
|
@ -67,6 +85,11 @@ fn main_main() -> i32 {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if options.opt_present("version") {
|
||||||
|
print_version();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
// Get input NRG image name
|
// Get input NRG image name
|
||||||
if options.free.len() != 1 {
|
if options.free.len() != 1 {
|
||||||
// We need exactly one input file!
|
// We need exactly one input file!
|
||||||
|
@ -129,13 +152,3 @@ fn main_main() -> i32 {
|
||||||
|
|
||||||
0
|
0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fn print_usage(prog_name: &str, opts: &Options) {
|
|
||||||
let brief = format!("NRGrip - rip Nero Burning ROM audio images
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
{prog} [-icrx] [options] <image.nrg>
|
|
||||||
{prog} -h", prog = prog_name);
|
|
||||||
print!("{}", opts.usage(&brief));
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue