Source code: rcs/utils/SystemProps.java
1 package rcs.utils;
2
3 import java.util.*;
4 import java.io.*;
5
6
7 public class SystemProps
8 {
9
10 static public boolean debug_on = false;
11
12 /*
13 * This never worked very well. For JDK 1.2 use System.setProperty()
14 public static void SetProperty(String name, String value)
15 {
16 try
17 {
18 if(debug_on)
19 {
20 System.out.println("SetPropterty("+name+", "+value+")");
21 }
22 Properties props = System.getProperties();
23 if(debug_on)
24 {
25 System.out.println("Old Properties");
26 props.list(System.out);
27 }
28 Properties new_props = new Properties(props);
29 StringBufferInputStream sbis = new StringBufferInputStream(name+"="+value);
30 if(debug_on)
31 {
32 System.out.println("Loading new Propteries");
33 }
34 new_props.load(sbis);
35 if(debug_on)
36 {
37 System.out.println("Setting new Propteries");
38 }
39 System.setProperties(new_props);
40 if(debug_on)
41 {
42 System.out.println("New Properties");
43 new_props.list(System.out);
44 System.out.println("Checking System Properies");
45 }
46 new_props = System.getProperties();
47 if(debug_on)
48 {
49 new_props.list(System.out);
50 }
51 }
52 catch(Exception e)
53 {
54 e.printStackTrace();
55 }
56 }
57 */
58
59
60 public static void cd(String dir)
61 {
62 try
63 {
64 // If we are running under something earlier than 1.1 this will
65 // cause a
66 if(dir.startsWith(".."))
67 {
68 String orig_dir = System.getProperty("user.dir");
69 int last_slash = orig_dir.lastIndexOf(File.separator);
70 dir = orig_dir.substring(0,last_slash)+ dir.substring(2);
71 }
72 System.setProperty("user.dir", dir);
73 }
74 catch(Exception e)
75 {
76 if(debug_on)
77 {
78 e.printStackTrace();
79 }
80 }
81 }
82
83 public static void main(String args[])
84 {
85 try
86 {
87 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
88 Runtime rt = Runtime.getRuntime();
89 while(true)
90 {
91 System.out.print("\nSystemProps> ");
92 String line = br.readLine();
93 if(null == line)
94 {
95 break;
96 }
97 StringTokenizer lineTokenizer = new StringTokenizer(line," \t\r\n");
98 if(!lineTokenizer.hasMoreTokens())
99 {
100 continue;
101 }
102 String first_token = lineTokenizer.nextToken();
103 if(first_token.equals("cd") && lineTokenizer.hasMoreTokens())
104 {
105 String second_token = lineTokenizer.nextToken();
106 cd(second_token);
107 continue;
108 }
109 int eq_index = line.indexOf('=');
110 if(eq_index > 0)
111 {
112 String name = line.substring(0,eq_index);
113 String value = line.substring(eq_index+1);
114 System.setProperty(name,value);
115 continue;
116 }
117 if(first_token.equals("ShowProps"))
118 {
119 Properties p = System.getProperties();
120 p.list(System.out);
121 continue;
122 }
123 if(first_token.equals("ls"))
124 {
125 File f = new File(".");
126 String file_names[] = f.list();
127 for(int i = 0;i < file_names.length; i++)
128 {
129 System.out.println(file_names[i]);
130 }
131 continue;
132 }
133 Process p = rt.exec(line);
134 InputStream temp_input_stream = p.getInputStream();
135 BufferedReader temp_buffered_reader = new BufferedReader(new InputStreamReader(temp_input_stream));
136 Thread.sleep(2000);
137 while(temp_buffered_reader.ready())
138 {
139 String temp_line = temp_buffered_reader.readLine();
140 System.out.println(temp_line);
141 }
142 }
143 }
144 catch(Exception e)
145 {
146 e.printStackTrace();
147 }
148 }
149
150 }
151