@Override public String getPrompt(CLIContext ctx, String[] args) { String prefix = null; if (args.length > 1) { prefix = args[1]; if (!prefix.endsWith(".")) prefix = prefix + "."; ctx.getUserData().put(PREFIX, prefix); } else { ctx.getUserData().remove(PREFIX); } return "sysconfig" + (prefix != null ? "[" + args[1] + "]" : "") + "> "; }
@Override public String getPrompt(CLIContext ctx, String[] args) { if (args.length < 2) { ctx.println ("Usage: binlog directory-name"); return null; } ctx.getUserData().put("binlog", args[1]); return String.format("(%s)> ", new File(args[1]).getName()); }
public void exec(CLIContext cli, String[] args) throws Exception { boolean quiet = args.length > 1 && "-q".equals (args[1]); try (BinLogWriter bl = new BinLogWriter(new File((String) cli.getUserData().get("binlog")))) { int oldFile = bl.getFileNumber(); bl.cutover(); if (!quiet) cli.print (String.format ("cutover %06d -> %06d%n", oldFile, bl.getFileNumber())); } } }
@Override public void exec(CLIContext cli, String[] args) throws Exception { try (DB db = new DB()) { db.open(); SysConfigManager mgr = new SysConfigManager(db); if (cli.getUserData().containsKey(SYSCONFIG.PREFIX)) mgr.setPrefix((String) cli.getUserData().get(SYSCONFIG.PREFIX)); else if (args.length > 1) mgr.setPrefix(args[1]); String format = "%" + mgr.getMaxIdLength() + "s: %s"; for (SysConfig sc : mgr.getAll()) { cli.println (String.format (format, sc.getId(), sc.getValue())); } } catch (Exception e) { cli.println (e.getMessage()); } } }
@Override public void exec(CLIContext cli, String[] args) throws Exception { if (args.length < 2) { cli.println("Usage: rm <id> "); return; } try (DB db = new DB()) { db.open(); db.beginTransaction(); SysConfigManager mgr = new SysConfigManager(db); if (cli.getUserData().containsKey(SYSCONFIG.PREFIX)) mgr.setPrefix((String) cli.getUserData().get(SYSCONFIG.PREFIX)); boolean deleted = mgr.delete(args[1]); db.commit(); cli.println ("sysconfig " + (deleted ? "deleted" : "not found")); } catch (Exception e) { cli.println (e.getMessage()); } } }
@Override public void exec(CLIContext cli, String[] args) throws Exception { if (args.length < 3) { cli.println("Usage: add <id> <value>"); return; } try (DB db = new DB()) { db.open(); db.beginTransaction(); SysConfigManager mgr = new SysConfigManager(db); if (cli.getUserData().containsKey(SYSCONFIG.PREFIX)) mgr.setPrefix((String) cli.getUserData().get(SYSCONFIG.PREFIX)); boolean added = false; if (mgr.get(args[1], null) == null) { mgr.put(args[1], args[2], READPERM, WRITEPERM); added = true; } db.commit(); cli.println ("sysconfig " + (added ? "created" : "already exists")); } catch (Exception e) { cli.println (e.getMessage()); } } }
public void exec(CLIContext cli, String[] args) throws Exception { try (BinLogReader bl = new BinLogReader(new File((String) cli.getUserData().get("binlog")))) { while (bl.hasNext(10000L)) { BinLog.Entry ref = bl.next(); cli.println(String.format("%06d@%08d %s", ref.ref().getFileNumber(), ref.ref().getOffset(), ISOUtil.hexdump(ref.get()))); cli.getReader().getTerminal().flush(); } } catch (Exception e) { e.printStackTrace(); } } }