} 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 {
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
}
}