Browse Source

main argument parsing

develop
Robin Thoni 7 years ago
parent
commit
623e246cc1
1 changed files with 69 additions and 5 deletions
  1. 69
    5
      src/main/java/com/uqac/rthoni/java_rmi/Main.java

+ 69
- 5
src/main/java/com/uqac/rthoni/java_rmi/Main.java View File

@@ -1,17 +1,81 @@
1 1
 package com.uqac.rthoni.java_rmi;
2 2
 
3
-import com.uqac.rthoni.com.java_rmi.client.ClientTestClass;
4
-import com.uqac.rthoni.com.java_rmi.server.ServerTestClass;
3
+import java.io.PrintStream;
5 4
 
6 5
 /**
7 6
  * Created by robin on 9/15/16.
8 7
  */
9 8
 public class Main {
9
+    public static void usage(String name, boolean error)
10
+    {
11
+        PrintStream printStream = (error ? System.err : System.out);
12
+
13
+        printStream.println("Usage:");
14
+        printStream.println(String.format("%1s server port source_dir class_dir log_file", name));
15
+        printStream.println("\tPut the program in server mode");
16
+        printStream.println("\tport: the port to listen on [1-65535]");
17
+        printStream.println("\tsource_dir: the folder to search for java files");
18
+        printStream.println("\tclass_dir: the folder to build java files");
19
+        printStream.println("\tlog_file: the file to log events");
20
+        printStream.println(String.format("%1s client hostname port input_file output_file", name));
21
+        printStream.println("\tPut the program in client mode");
22
+        printStream.println("\thost: the remote server ip or hostname");
23
+        printStream.println("\tport: the port to connect on [1-65535]");
24
+        printStream.println("\tinput_file: the command file to use");
25
+        printStream.println("\toutput_file: the file to output command results");
26
+        printStream.println(String.format("%1s --help", name));
27
+        printStream.println(String.format("%1s -h", name));
28
+        printStream.println("\tPrint this help and exit");
29
+
30
+        if (error) {
31
+            System.exit(64);
32
+        }
33
+    }
34
+
35
+    private static int getPort(String name, String str) {
36
+        int port = 0;
37
+        try {
38
+            port = Integer.parseInt(str);
39
+        } catch (Exception e) {
40
+            usage(name, true);
41
+        }
42
+        if (port < 1 || port > 65535) {
43
+            usage(name, true);
44
+        }
45
+        return port;
46
+    }
47
+
10 48
     public static void main(String[] args)
11 49
     {
12
-        ClientTestClass t2;
13
-        ServerTestClass t3;
14
-        System.out.println("Hello World!");
50
+        String name = "java-rmi";
51
+        for (String arg : args) {
52
+            if (arg.equals("--help") || arg.equals("-h")) {
53
+                usage(name, false);
54
+            }
55
+        }
56
+        if (args.length != 5) {
57
+            usage(name, true);
58
+        }
59
+        String mode = args[0];
60
+        if (mode.equals("server")) {
61
+            int port = getPort(name, args[1]);
62
+            String sourceDir = args[2];
63
+            String classDir = args[3];
64
+            String logFile = args[4];
65
+
66
+            System.out.println("Hello World! server");
67
+        }
68
+        else if (mode.equals("client")) {
69
+            String host = args[1];
70
+            int port = getPort(name, args[2]);
71
+            String inputFile = args[3];
72
+            String outputFile = args[4];
73
+
74
+            System.out.println("Hello World! client");
75
+        }
76
+        else {
77
+            usage(name, true);
78
+        }
15 79
         System.exit(0);
16 80
     }
17 81
 }

Loading…
Cancel
Save