diff options
Diffstat (limited to 'src/bin/server/args.rs')
| -rw-r--r-- | src/bin/server/args.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/bin/server/args.rs b/src/bin/server/args.rs index 31c0acc..fc844ea 100644 --- a/src/bin/server/args.rs +++ b/src/bin/server/args.rs | |||
| @@ -1,12 +1,14 @@ | |||
| 1 | pub struct Args { | 1 | pub struct Args { |
| 2 | pub ip: String, | 2 | pub ip: String, |
| 3 | pub port: u16, | 3 | pub port: u16, |
| 4 | pub unsafe_mode: bool, | ||
| 4 | } | 5 | } |
| 5 | 6 | ||
| 6 | pub fn parse_args() -> Args { | 7 | pub fn parse_args() -> Args { |
| 7 | let args: Vec<String> = std::env::args().collect(); | 8 | let args: Vec<String> = std::env::args().collect(); |
| 8 | let mut ip = "127.0.0.1".to_string(); | 9 | let mut ip = "127.0.0.1".to_string(); |
| 9 | let mut port = 11525; | 10 | let mut port = 11525; |
| 11 | let mut unsafe_mode = false; | ||
| 10 | let mut i = 1; | 12 | let mut i = 1; |
| 11 | while i < args.len() { | 13 | while i < args.len() { |
| 12 | if args[i] == "-p" { | 14 | if args[i] == "-p" { |
| @@ -32,10 +34,17 @@ pub fn parse_args() -> Args { | |||
| 32 | eprintln!("-i requires an IP address"); | 34 | eprintln!("-i requires an IP address"); |
| 33 | std::process::exit(1); | 35 | std::process::exit(1); |
| 34 | } | 36 | } |
| 37 | } else if args[i] == "--unsafe" { | ||
| 38 | unsafe_mode = true; | ||
| 39 | i += 1; | ||
| 35 | } else { | 40 | } else { |
| 36 | eprintln!("Unknown argument: {}", args[i]); | 41 | eprintln!("Unknown argument: {}", args[i]); |
| 37 | std::process::exit(1); | 42 | std::process::exit(1); |
| 38 | } | 43 | } |
| 39 | } | 44 | } |
| 40 | Args { ip, port } | 45 | Args { |
| 46 | ip, | ||
| 47 | port, | ||
| 48 | unsafe_mode, | ||
| 49 | } | ||
| 41 | } | 50 | } |
