@@ -3,6 +3,7 @@ const net = std.net;
33const print = std .debug .print ;
44
55const Client = @import ("client.zig" ).Client ;
6+ const HelpMessage = @import ("HelpMessage.zig" );
67
78const version = "1.0.0" ;
89
@@ -17,20 +18,40 @@ pub fn main() !void {
1718 const program_name = args .next () orelse "mini-RTS-zig-bot" ;
1819
1920 const host_value = args .next () orelse {
20- print ("no host name or ip address provided\n usage {s} <host> <port>\n " , .{program_name });
21+ try std .io .getStdOut ().writer ().print ("no host provided\n " , .{});
22+ try HelpMessage .printHelpMessage (program_name );
2123 return ;
2224 };
2325
24- if (std .mem .eql (u8 , host_value , "--version" ) or std .mem .eql (u8 , host_value , "-v" )) {
25- try std .io .getStdOut ().writer ().print ("{s}\n " , .{version });
26+ if (std .mem .eql (u8 , host_value , "-v" ) or std .mem .eql (u8 , host_value , "--version" )) {
27+ if (args .next ()) | option | {
28+ try std .io .getStdOut ().writer ().print ("unnecessary additional option: {s}\n " , .{option });
29+ try HelpMessage .printHelpMessage (program_name );
30+ } else try std .io .getStdOut ().writer ().print ("{s}\n " , .{version });
31+ return ;
32+ } else if (std .mem .eql (u8 , host_value , "-h" ) or std .mem .eql (u8 , host_value , "--help" )) {
33+ if (args .next ()) | option | try std .io .getStdOut ().writer ().print ("unnecessary additional option: {s}\n " , .{option });
34+ try HelpMessage .printHelpMessage (program_name );
2635 return ;
2736 }
2837
2938 const port_value = args .next () orelse {
30- print ("no port provided\n usage {s} <host> <port>\n " , .{program_name });
39+ try std .io .getStdOut ().writer ().print ("no port provided\n " , .{});
40+ try HelpMessage .printHelpMessage (program_name );
41+ return ;
42+ };
43+
44+ if (args .next ()) | option | {
45+ try std .io .getStdOut ().writer ().print ("unnecessary additional option: {s}\n runModeOptions are not supported\n " , .{option });
46+ try HelpMessage .printHelpMessage (program_name );
47+ return ;
48+ }
49+
50+ const port = std .fmt .parseInt (u16 , port_value , 10 ) catch {
51+ try std .io .getStdOut ().writer ().print ("invalid port number {s}\n " , .{port_value });
52+ try HelpMessage .printHelpMessage (program_name );
3153 return ;
3254 };
33- const port = try std .fmt .parseInt (u16 , port_value , 10 );
3455
3556 var cli = try Client .init (host_value , port , null );
3657 defer cli .deinit ();
0 commit comments