blob: 40cf2bdad075e3cc353ff1a8ab92c832b6d57e19 [file] [log] [blame]
/*
* ******************************************************************************
* Copyright (C) 2007, International Business Machines Corporation and others.
* All Rights Reserved.
* ******************************************************************************
*/
package com.ibm.icu.dev.tool.tzu;
import java.io.File;
import java.io.IOException;
import java.util.Locale;
/**
* Entry point for the ICUTZU tool.
*/
public class ICUTZUMain {
/**
* Argument number for the backup directory.
*/
public static final int BACKUP_DIR = 4;
/**
* Argument number for the current directory.
*/
public static final int CUR_DIR = 0;
/**
* Argument number for the icon file.
*/
public static final int ICON_FILE = 5;
/**
* Number of arguments.
*/
public static final int NUM_ARGS = 6;
/**
* Argument number for the path list file.
*/
public static final int PATH_FILE = 1;
/**
* Argument number for the result list file.
*/
public static final int RESULT_FILE = 2;
/**
* Argument number for the timezone resource file.
*/
public static final int TZ_FILE = 3;
/**
* Entry point for the ICUTZU tool.
*
* @param args
* The list of arguments. Should be in the following order:
* <ul>
* <li>Current directory</li>
* <li>Path list file</li>
* <li>Result list file</li>
* <li>Timezone resource file</li>
* <li>Backup directory</li>
* </ul>
* All directories and paths should be relative to the given
* current directory.
*/
public static void main(String[] args) {
try {
// TODO: fix this to properly set the user agent
String agent = "ICUTZU/1.0 (" + System.getProperty("os.name") + " "
+ System.getProperty("os.version") + "; "
+ Locale.getDefault().toString() + ")";
System.setProperty("http.agent", agent);
if (args.length == 0) {
// in the case of running without commandline options
File curDir = new File(".");
try {
curDir = curDir.getCanonicalFile();
} catch (IOException ex) {
curDir = curDir.getAbsoluteFile();
}
new GUILoader(curDir, new File("Temp").getAbsoluteFile(),
new File("DirectorySearch.txt").getAbsoluteFile(),
new File("ICUList.txt").getAbsoluteFile(), new File(
"zoneinfo.res").getAbsoluteFile(), new File(
"icu.gif").getAbsoluteFile());
return;
} else if (args.length != NUM_ARGS) {
System.err.println("Incorrect number of arguments.");
System.err
.println("Syntax: ICUTZUMain <cur dir> <path file> <result file> <tz file> <backup dir>");
System.exit(-1);
} else {
File curDir = new File(args[CUR_DIR]);
try {
curDir = curDir.getCanonicalFile();
} catch (IOException ex) {
curDir = curDir.getAbsoluteFile();
}
File backupDir = new File(curDir, args[BACKUP_DIR])
.getAbsoluteFile();
File pathFile = new File(curDir, args[PATH_FILE])
.getAbsoluteFile();
File resultFile = new File(curDir, args[RESULT_FILE])
.getAbsoluteFile();
File tzFile = new File(curDir, args[TZ_FILE]).getAbsoluteFile();
File iconFile = new File(curDir, args[ICON_FILE])
.getAbsoluteFile();
if ("true".equalsIgnoreCase(System.getProperty("nogui")))
new CLILoader(curDir, backupDir, pathFile, resultFile,
tzFile);
else
new GUILoader(curDir, backupDir, pathFile, resultFile,
tzFile, iconFile);
}
} catch (Throwable ex) {
// should any unexplained exception occur, we should exit
// abnormally. ideally, this should never happen.
System.err.println("Internal program error.");
ex.printStackTrace();
System.exit(-1);
}
}
}