summaryrefslogtreecommitdiff
blob: d3239085cacfa60dac316ad02dc1017b84968a9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
public class Parameters
{
   private static String output_dir;
   private static String log_filename, known_classes_filename, groups_filename;
   private static int threads;

   static
   {
      output_dir = "../output/";
      log_filename = "../last_log";
      known_classes_filename = "../data/KNOWN_CLASSES";
      groups_filename = "../data/GROUPS";
      threads = 8;
   }

   private Parameters () {} /** utility class **/

   public static boolean set_parameters (final String[] args)
   {
      int i;

      for (i = 0; i < args.length; i++)
      {
         if(args[i].equals("--outputs"))
         {
            i++;
            output_dir = args[i];
         }
         else if(args[i].equals("--log"))
         {
            i++;
            log_filename = args[i];
         }
         else if(args[i].equals("--classes"))
         {
            i++;
            known_classes_filename = args[i];
         }
         else if(args[i].equals("--groups"))
         {
            i++;
            groups_filename = args[i];
         }
         else if(args[i].equals("--threads"))
         {
            i++;
            threads = Integer.parseInt(args[i]);
         }
         else if(args[i].equals("--help") || args[i].equals("-h"))
         {
            usage();

            return false;
         }
         else
         {
            System.err.println("[W] Unknown parameter:" + args[i]);
         }
      }

      return true;
   }

   private static void usage ()
   {
      final StringBuilder sb;

      sb = new StringBuilder();

      sb.append
      (
         ").\n\"--outputs directory\": where the 'ICS' files are written "
         + "(default: "
      );
      sb.append(output_dir);

      sb.append
      (
         ").\n\"--log filename\": where the errors are reported (default: "
      );
      sb.append(log_filename);

      sb.append
      (
         ").\n\"--classes filename\": file containing the known classes "
         + "(default: "
      );
      sb.append(known_classes_filename);

      sb.append
      (
         ").\n\"--groups filename\": file containing the groups (default: "
      );
      sb.append(groups_filename);

      sb.append
      (
         ").\n\"--threads number\": maximum number of threads running at "
         + "any time (default: "
      );
      sb.append(threads);

      sb.append
      (
         ").\n\"--help\": prints this instead of converting (alias: \"-h\")."
      );

      System.out.println(sb.toString());
   }

   public static String get_output_directory ()
   {
      return output_dir;
   }

   public static String get_log_filename ()
   {
      return log_filename;
   }

   public static String get_known_classes_filename ()
   {
      return known_classes_filename;
   }

   public static String get_groups_filename ()
   {
      return groups_filename;
   }

   public static int get_max_threads ()
   {
      return threads;
   }
}