+ if (name.equals("mail.dir")) {
+ return new org.ibex.js.Directory(new File(JSU.toString(args[0])));
+ }
+ if (name.equals("mail.shell")) {
+ // FIXME: EEEEEVIL!
+ Log.warn("dbug", args[0].getClass().getName());
+ Log.warn("dbug", args[1].getClass().getName());
+ final Process p = Runtime.getRuntime().exec(JSU.toString(args[1]));
+ Message m = (Message)args[0];
+ new Thread() {
+ public void run() {
+ try {
+ BufferedReader br = new BufferedReader(new InputStreamReader(p.getErrorStream()));
+ String s = null;
+ while((s = br.readLine())!=null)
+ Log.warn("shell", s);
+ } catch (Exception e) { e.printStackTrace(); }
+ }
+ }.start();
+ OutputStream os = p.getOutputStream();
+ Stream stream = new Stream(os);
+ m.getStream().transcribe(stream);
+ stream.close();
+ p.waitFor();
+ return null;
+ }