From 3329fde767cd27835c107d9bb6627b9d0b323358 Mon Sep 17 00:00:00 2001 From: Marrub Date: Tue, 12 Feb 2019 12:53:25 -0500 Subject: [PATCH] use argparse --- Cargo.toml | 1 + src/main.rs | 19 +++++++++++++++++-- src/marathon/map.rs | 3 ++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c172bbc..ef54be1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,6 +12,7 @@ edition = "2018" publish = false [dependencies] +argparse = "0.2" bitflags = "1.0" failure = "0.1" generic-array = "0.12" diff --git a/src/main.rs b/src/main.rs index 8610fb1..0371dff 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ use maraiah::{durandal::{bin::*, chunk::*, err::*, image::*, text::*}, marathon::{machdr, map, pict, shp, term, wad}}; -use std::{env, fs, +use std::{fs, io::{self, Write}}; fn write_chunk(cid: &Ident, cnk: &[u8], eid: u16) -> ResultS<()> @@ -101,9 +101,24 @@ fn process_shp(b: &[u8]) -> ResultS<()> fn main() -> ResultS<()> { + use argparse::*; use memmap::Mmap; - for arg in env::args().skip(1) { + let mut args: Vec = Vec::new(); + { + let mut ap = ArgumentParser::new(); + ap.set_description(env!("CARGO_PKG_DESCRIPTION")); + ap.add_option(&["-v", "--version"], + Print(format!("{} {}", + env!("CARGO_PKG_NAME"), + env!("CARGO_PKG_VERSION"))), + "Show the version"); + ap.refer(&mut args) + .add_argument("inputs", List, "Input files"); + ap.parse_args_or_exit(); + } + + for arg in &args { let (typ, fna) = if let Some(st) = arg.find(':') { arg.split_at(st + 1) } else { diff --git a/src/marathon/map.rs b/src/marathon/map.rs index 78beaff..2001da5 100644 --- a/src/marathon/map.rs +++ b/src/marathon/map.rs @@ -1,4 +1,5 @@ -use crate::{durandal::{bin::*, chunk::*, err::*, fx32::*, text::mac_roman_conv}, +use crate::{durandal::{bin::*, chunk::*, err::*, fx32::*, + text::mac_roman_conv}, marathon::xfer::TransferMode}; use bitflags::bitflags; use std::fmt;