mirror of
https://github.com/JonasunderscoreJones/moddah.git
synced 2025-10-24 22:39:19 +02:00
added flag processing
This commit is contained in:
parent
28ae6a79e7
commit
674333b030
1 changed files with 47 additions and 12 deletions
59
src/main.rs
59
src/main.rs
|
|
@ -1,22 +1,57 @@
|
|||
use std::env;
|
||||
|
||||
mod cliargs;
|
||||
mod errorhandler;
|
||||
|
||||
fn main() {
|
||||
fn main()
|
||||
{
|
||||
let args: Vec<String> = env::args().collect();
|
||||
for i in args.iter()
|
||||
let flags: Vec<&str> = ["-h", "--help", "-v", "--version", "-i", "--install"];
|
||||
flagcheck(args, flags);
|
||||
flagprocessing(args, flags);
|
||||
|
||||
}
|
||||
|
||||
// NEW CONCEPT CAUSE OLD ONE IS GARBAGE:
|
||||
// - move args from old to new vector one by one when checked
|
||||
// - spit out error when leftover elements in old vector
|
||||
// - process elements of new vector
|
||||
|
||||
fn flagcheck(args: Vec<String>, flags: Vec<&str>)
|
||||
{
|
||||
let mut skip = 1; //first element in flags vector always skipped since it's the scripts directory and therefore garbage data
|
||||
for c in args.iter()
|
||||
{
|
||||
match i.as_str()
|
||||
if !flags.contains(&c)
|
||||
{
|
||||
"--help" => cliargs::help(),
|
||||
_ => {
|
||||
if !args.iter().position(|r| r.as_str() == i).unwrap().parse() == 0
|
||||
{
|
||||
println!("Error")
|
||||
} else {
|
||||
println!("{}", args.iter().position(|r| r.as_str() == i).unwrap());
|
||||
}
|
||||
},
|
||||
errorhandler::error(c.as_str());
|
||||
std::process::exit(-1);
|
||||
} else {
|
||||
match c.as_str()
|
||||
{
|
||||
"-i" => skip += 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn flagprocessing(args: Vec<String>, flags: Vec<&str>)
|
||||
{
|
||||
let mut skip = 1; //first element in flags vector always skipped since it's the scripts directory and therefore garbage data
|
||||
for c in args.iter()
|
||||
{
|
||||
if skip == 0
|
||||
{
|
||||
match c.as_str()
|
||||
{
|
||||
"--help" => cliargs::help(),
|
||||
_ => {
|
||||
errorhandler::unexpectederror();
|
||||
std::process::exit(-1);
|
||||
},
|
||||
}
|
||||
} else {
|
||||
skip -= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue