c6e1619690f56c39a6590446bea62bbcfa30ffc6
[mir.git] / source / tool / ConfigTool.java
1 package tool;\r
2 \r
3 import java.security.MessageDigest;\r
4 import java.util.TimeZone;\r
5 \r
6 import gnu.regexp.RE;\r
7 import mir.util.StringRoutines;\r
8 \r
9 /**\r
10  * <p>Title: </p>\r
11  * <p>Description: </p>\r
12  * <p>Copyright: Copyright (c) 2003</p>\r
13  * <p>Company: </p>\r
14  * @author not attributable\r
15  * @version 1.0\r
16  */\r
17 \r
18 public class ConfigTool {\r
19   public ConfigTool() {\r
20   }\r
21 \r
22   public static void timezone(String aSpecification) {\r
23     try {\r
24       RE specification = new RE(aSpecification);\r
25       String[] timeZoneIds = TimeZone.getAvailableIDs();\r
26 \r
27       System.out.println("ID\tOffset\tDST?\tName");\r
28       for (int i=0; i<timeZoneIds.length; i++) {\r
29         if (specification.isMatch(timeZoneIds[i])) {\r
30           TimeZone timeZone = TimeZone.getTimeZone(timeZoneIds[i]);\r
31           long offset = timeZone.getRawOffset()/(1000*60);\r
32           String sign = "";\r
33           if (offset<0) {\r
34             offset=-offset;\r
35             sign = "-";\r
36           }\r
37 \r
38           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
39         }\r
40       }\r
41     }\r
42     catch (Throwable t) {\r
43       System.err.println(t.toString());\r
44     }\r
45   }\r
46 \r
47   public static void digest(String aDigest, String aData) {\r
48     try {\r
49       MessageDigest messageDigest = MessageDigest.getInstance(aDigest);\r
50 \r
51       System.out.println(StringRoutines.convertToHex(messageDigest.digest(aData.getBytes("UTF-8"))));\r
52     }\r
53     catch (Throwable t) {\r
54       System.err.println(t.toString());\r
55     }\r
56   }\r
57 \r
58   public static void main(String[] anArguments) {\r
59     String command = "help";\r
60 \r
61     if (anArguments.length >= 1) {\r
62       command = anArguments[0];\r
63 \r
64       if (command.equals("timezone")) {\r
65         if (anArguments.length<=2) {\r
66           if (anArguments.length==2)\r
67             timezone(anArguments[1]);\r
68           else\r
69             timezone(".*");\r
70         }\r
71 \r
72         return;\r
73       }\r
74       else if (command.equals("digest")) {\r
75         if (anArguments.length == 3) {\r
76           digest(anArguments[1], anArguments[2]);\r
77 \r
78           return;\r
79         }\r
80       }\r
81     }\r
82 \r
83 \r
84 \r
85     System.out.println("Usage:");\r
86 \r
87     System.out.println("  ConfigTool timezone [regexp]");\r
88     System.out.println("");\r
89     System.out.println("      Shows the available timezones");\r
90     System.out.println("");\r
91     System.out.println("  BundleTool digest <digestname> <string>");\r
92     System.out.println("");\r
93     System.out.println("      Calculates the digest of a string.");\r
94     System.out.println("");\r
95   }\r
96 }