1package com.mot.dm.tool;
2
3import java.io.File;
4
5public class DMTSTool {
6  private static String fileFrom = null;
7  private static String fileTo = null;
8  private static boolean conversion = false;
9  private static boolean difference = false;
10
11  public static void usage(boolean isForDev) {
12    System.out.println("");
13    System.out.println(
14        "Usage:  java com.mot.dm.tool.DMTSTool  [-options]  <fileFrom> <fileTo>");
15    System.out.println("where options include:");
16    System.out.println(
17        "    -conversion     perform conversion process for given files ");
18    System.out.println("                    file formats: zip or dmts");
19    System.out.println(
20        "    -difference     find difference between given files ");
21    System.out.println("                    file formats: zip or dmts");
22    System.out.println("    -?|-h|--help    print this help message");
23    System.out.println("    -verbose        enable verbose output");
24    System.out.println("    <fileFrom>      path to source file (from)");
25    System.out.println("    <fileTo>        path to source file (to)");
26    System.out.println( "");
27
28    if(isForDev){
29      System.out.println("Usage for developers only !!!");
30      System.out.println("\njava com.mot.dm.tool.Diff <fileFrom> <fileTo>");
31      System.out.println("                   file formats: dir, zip, dmts");
32      System.out.println("\njava com.mot.dm.tool.DMTS -ds|-sd <fileFrom> <fileTo>");
33      System.out.println("                   file formats: dir, dmts");
34      System.out.println("                   options:  -ds    dir to dmts");
35      System.out.println("                             -sd    dmts to dir");
36      System.out.println("\njava com.mot.dm.tool.Zip   -zip|-unzip <fileFrom> <fileTo>");
37      System.out.println("                   -zip   : dir  to .zip");
38      System.out.println("                   -unzip : .zip to  dir");
39      System.out.println( "");
40    }
41  }
42
43  public static void main(String[] args) {
44    String arg;
45    for (int i = 0; i < args.length; i++) {
46      arg = args[i];
47      if (arg.equals("-?") || arg.equals("-h") || arg.equals("--help")) {
48        usage(false);
49        System.exit( -1);
50      }
51      else if (arg.equals("--helpdev")) {
52        usage(true);
53        System.exit( -1);
54      }
55      else if (arg.equals("-verbose")) {
56        Util.VERBOSE = true;
57      }
58      else if (arg.equals("-conversion")) {
59        conversion = true;
60      }
61      else if (arg.equals("-difference")) {
62        difference = true;
63      }
64      else {
65        if (fileFrom == null) {
66          fileFrom = arg;
67        }
68        else if (fileTo == null) {
69          fileTo = arg;
70        }
71        else {
72          System.out.println("\nWrong parameters...");
73          usage(false);
74          System.exit( -1);
75        }
76      }
77    }
78    if (!validateParms()) {
79      usage(false);
80      System.exit( -1);
81    }
82
83    try {
84      if (difference) {
85        Diff diff = new Diff();
86        diff.getDiff(fileFrom, fileTo);
87      }
88      else if (conversion) {
89        boolean fileFromIsFile = fileFrom.toUpperCase().endsWith(".ZIP") || fileFrom.toUpperCase().endsWith(".DMTS");
90        boolean fileToIsFile = fileTo.toUpperCase().endsWith(".ZIP") || fileTo.toUpperCase().endsWith(".DMTS");
91
92        DMTS dmts = new DMTS();
93        if(fileFromIsFile && fileToIsFile){
94          dmts.convert(fileFrom, fileTo);
95        }
96        else if(fileFromIsFile){
97          dmts.dmts2dir(fileFrom, fileTo);
98        }
99        else  if(fileToIsFile){
100          dmts.dir2dmts(fileFrom, fileTo);
101        }
102        else{
103          System.out.println("\nConversion Error!!! Unsupported file format(s) or file combinations");
104          System.exit(-1);
105        }
106      }
107    }
108    catch (Exception e) {
109      e.printStackTrace();
110      System.exit(-1);
111    }
112    System.exit(1);
113  }
114
115  private static boolean validateParms() {
116
117    if (!conversion && !difference ) {
118      System.out.println(
119          "\nRequired parameter (-conversion or -difference) is missing...");
120      return false;
121    }
122    else if (conversion && difference) {
123      System.out.println(
124          "\nParameters -conversion and -difference cannot be used together...");
125      return false;
126    }
127    if (fileFrom == null) {
128      System.out.println("\nRequired parameter <fileFrom> not set...");
129      return false;
130    }
131    if (fileTo == null) {
132      System.out.println("\nRequired parameter <fileTo> not set...");
133      return false;
134    }
135    return true;
136  }
137}
138