63 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			V
		
	
	
module cmdline
 | 
						|
 | 
						|
pub fn many_values(args []string, optname string) []string {
 | 
						|
	mut flags := []string
 | 
						|
	for ci, cv in args {
 | 
						|
		if cv == optname {
 | 
						|
			if ci + 1 < args.len {
 | 
						|
				flags << args[ci + 1]
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return flags
 | 
						|
}
 | 
						|
 | 
						|
pub fn option(args []string, param string, def string) string {
 | 
						|
	mut found := false
 | 
						|
	for arg in args {
 | 
						|
		if found {
 | 
						|
			return arg
 | 
						|
		}
 | 
						|
		else if param == arg {
 | 
						|
			found = true
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return def
 | 
						|
}
 | 
						|
 | 
						|
pub fn before(args []string, what []string) []string {
 | 
						|
	mut found := false
 | 
						|
	mut args_before := []string
 | 
						|
	for a in args {
 | 
						|
		if a in what {
 | 
						|
			found = true
 | 
						|
			break
 | 
						|
		}
 | 
						|
		args_before << a
 | 
						|
	}
 | 
						|
	return args_before
 | 
						|
}
 | 
						|
 | 
						|
pub fn after(args []string, what []string) []string {
 | 
						|
	mut found := false
 | 
						|
	mut args_after := []string
 | 
						|
	for a in args {
 | 
						|
		if a in what {
 | 
						|
			found = true
 | 
						|
			continue
 | 
						|
		}
 | 
						|
		if found {
 | 
						|
			args_after << a
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return args_after
 | 
						|
}
 | 
						|
 | 
						|
pub fn only_non_options(args []string) []string {
 | 
						|
	return args.filter(!it.starts_with('-'))
 | 
						|
}
 | 
						|
 | 
						|
pub fn only_options(args []string) []string {
 | 
						|
	return args.filter(it.starts_with('-'))
 | 
						|
}
 |