X-Git-Url: http://git.megacz.com/?p=org.ibex.xt-crawshaw.git;a=blobdiff_plain;f=src%2Fjava%2Forg%2Fibex%2Fxt%2Fshell%2FEnv.java;fp=src%2Fjava%2Forg%2Fibex%2Fxt%2Fshell%2FEnv.java;h=6f3714673c5ee4b09e887f1821c0e5cd890b0caf;hp=0000000000000000000000000000000000000000;hb=79f04e59b0a9997c56f0bc3859be30f6fd262717;hpb=001892c7393bfd314472dba1d87f804be4ed8936 diff --git a/src/java/org/ibex/xt/shell/Env.java b/src/java/org/ibex/xt/shell/Env.java new file mode 100644 index 0000000..6f37146 --- /dev/null +++ b/src/java/org/ibex/xt/shell/Env.java @@ -0,0 +1,35 @@ +package org.ibex.xt.shell; + +import java.io.IOException; + +public abstract class Env { + /** Current JS path using '.' as a seperator. */ + public String path = ""; + + public Command[] commands = new Command[0]; + + /** Returns the command matching the given name. */ + public Command command(String name) { + for (int i=0; i < commands.length; i++) + if (commands[i].name().equals(name)) return commands[i]; + return null; + } + + /** Returns a path, based on console-style representation. */ + public String path(String c) { + if (c.equals("") || c.equals(".") || c.equals("/")) { + c = "."; + } else if (c.equals("..")) { + c = c.substring(0, c.lastIndexOf('.')); + if (c.equals("")) c = "."; + } else { + if (c.charAt(0) != '/') c = path + "." + c; + c = c.replaceAll("/+", "."); + if (c.length() > 1 && c.charAt(c.length() - 1) == '.') + c = c.substring(0, c.length() - 1); + } + return c; + } + + public abstract Request.Response send(Request request) throws IOException; +}