X-Git-Url: http://git.megacz.com/?p=org.ibex.xt-crawshaw.git;a=blobdiff_plain;f=src%2Fjava%2Forg%2Fibex%2Fxt%2Fshell%2FCommand.java;h=238f8af09f32b0221ff67bd066a3151c8013290c;hp=0ff29529a84aba2cd4300ebaff33af6df48eda64;hb=fc9f528e7acb1baf7c145b22dd0b6469968aaec0;hpb=79f04e59b0a9997c56f0bc3859be30f6fd262717 diff --git a/src/java/org/ibex/xt/shell/Command.java b/src/java/org/ibex/xt/shell/Command.java index 0ff2952..238f8af 100644 --- a/src/java/org/ibex/xt/shell/Command.java +++ b/src/java/org/ibex/xt/shell/Command.java @@ -131,7 +131,7 @@ public abstract class Command { } else { List l = ((Request.Key.Res)ret).keys(); if (l.size() == 0) { - w.write("cd "); + w.write("error: "); w.write(c[1]); w.write(": no such path\n"); } else { @@ -150,8 +150,35 @@ public abstract class Command { public void execute(Writer w, String[] c, Env env) throws IOException { if (c.length == 1) { w.write(usage()); } - String[] r = new String[c.length - 1]; - for (int i=0; i < r.length; i++) r[i] = env.path(c[i + 1]); + Request.Key[] r = new Request.Key[c.length - 1]; + for (int i=0; i < r.length; i++) r[i] = new Request.RemoveKey(env.path(c[i + 1])); + + Request.Response ret = env.send(new Request.Composite(r, false)); + if (!(ret instanceof Request.Composite.Res)) { + w.write("error: "); + w.write(ret.error().getMessage()); + w.write("\n"); + } else { + Request.Response[] res = ((Request.Composite.Res)ret).responses(); + for (int i=0; i < res.length; i++) { + if (res[i] instanceof Request.RemoveKey.Res) { + boolean rm = ((Request.RemoveKey.Res)res[i]).removed(); + if (!rm) { + w.write("error: cannot remove '"); + w.write(c[i + 1]); + w.write("': no such key\n"); + } + } else { + w.write("error: cannot remove '"); + w.write(c[i + 1]); + w.write("': "); + w.write(res[i].error().getMessage()); + w.write("\n"); + } + } + } + + // Object ret = send(new KeyRequest( FIXME: CompositeRequest } }