experimental config tool app
[mir.git] / source / tool / ConfigTool.java
diff --git a/source/tool/ConfigTool.java b/source/tool/ConfigTool.java
new file mode 100755 (executable)
index 0000000..c6e1619
--- /dev/null
@@ -0,0 +1,96 @@
+package tool;\r
+\r
+import java.security.MessageDigest;\r
+import java.util.TimeZone;\r
+\r
+import gnu.regexp.RE;\r
+import mir.util.StringRoutines;\r
+\r
+/**\r
+ * <p>Title: </p>\r
+ * <p>Description: </p>\r
+ * <p>Copyright: Copyright (c) 2003</p>\r
+ * <p>Company: </p>\r
+ * @author not attributable\r
+ * @version 1.0\r
+ */\r
+\r
+public class ConfigTool {\r
+  public ConfigTool() {\r
+  }\r
+\r
+  public static void timezone(String aSpecification) {\r
+    try {\r
+      RE specification = new RE(aSpecification);\r
+      String[] timeZoneIds = TimeZone.getAvailableIDs();\r
+\r
+      System.out.println("ID\tOffset\tDST?\tName");\r
+      for (int i=0; i<timeZoneIds.length; i++) {\r
+        if (specification.isMatch(timeZoneIds[i])) {\r
+          TimeZone timeZone = TimeZone.getTimeZone(timeZoneIds[i]);\r
+          long offset = timeZone.getRawOffset()/(1000*60);\r
+          String sign = "";\r
+          if (offset<0) {\r
+            offset=-offset;\r
+            sign = "-";\r
+          }\r
+\r
+          System.out.println(timeZone.getID() + "\t" + sign + offset/60 + ":" + StringRoutines.padStringLeft(Long.toString(offset%60),2,'0')+"\t"+(timeZone.useDaylightTime()?"yes":"no")+"\t"+ timeZone.getDisplayName());\r
+        }\r
+      }\r
+    }\r
+    catch (Throwable t) {\r
+      System.err.println(t.toString());\r
+    }\r
+  }\r
+\r
+  public static void digest(String aDigest, String aData) {\r
+    try {\r
+      MessageDigest messageDigest = MessageDigest.getInstance(aDigest);\r
+\r
+      System.out.println(StringRoutines.convertToHex(messageDigest.digest(aData.getBytes("UTF-8"))));\r
+    }\r
+    catch (Throwable t) {\r
+      System.err.println(t.toString());\r
+    }\r
+  }\r
+\r
+  public static void main(String[] anArguments) {\r
+    String command = "help";\r
+\r
+    if (anArguments.length >= 1) {\r
+      command = anArguments[0];\r
+\r
+      if (command.equals("timezone")) {\r
+        if (anArguments.length<=2) {\r
+          if (anArguments.length==2)\r
+            timezone(anArguments[1]);\r
+          else\r
+            timezone(".*");\r
+        }\r
+\r
+        return;\r
+      }\r
+      else if (command.equals("digest")) {\r
+        if (anArguments.length == 3) {\r
+          digest(anArguments[1], anArguments[2]);\r
+\r
+          return;\r
+        }\r
+      }\r
+    }\r
+\r
+\r
+\r
+    System.out.println("Usage:");\r
+\r
+    System.out.println("  ConfigTool timezone [regexp]");\r
+    System.out.println("");\r
+    System.out.println("      Shows the available timezones");\r
+    System.out.println("");\r
+    System.out.println("  BundleTool digest <digestname> <string>");\r
+    System.out.println("");\r
+    System.out.println("      Calculates the digest of a string.");\r
+    System.out.println("");\r
+  }\r
+}
\ No newline at end of file