mirror of
https://github.com/JonasunderscoreJones/moddah.git
synced 2025-10-25 14:49: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;
|
use std::env;
|
||||||
|
|
||||||
mod cliargs;
|
mod cliargs;
|
||||||
|
mod errorhandler;
|
||||||
|
|
||||||
fn main() {
|
fn main()
|
||||||
|
{
|
||||||
let args: Vec<String> = env::args().collect();
|
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(),
|
errorhandler::error(c.as_str());
|
||||||
_ => {
|
std::process::exit(-1);
|
||||||
if !args.iter().position(|r| r.as_str() == i).unwrap().parse() == 0
|
} else {
|
||||||
{
|
match c.as_str()
|
||||||
println!("Error")
|
{
|
||||||
} else {
|
"-i" => skip += 1
|
||||||
println!("{}", args.iter().position(|r| r.as_str() == i).unwrap());
|
}
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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