package com.robonobo.console.cmds; import java.io.PrintWriter; import java.sql.Connection; import com.robonobo.common.exceptions.SeekInnerCalmException; import com.robonobo.common.util.DbUtil; import com.robonobo.console.RobonoboConsole; public class dbquery implements ConsoleCommand { public void printHelp(PrintWriter out) { out.println("'dbquery [meta|page] \"<query>\"' runs the supplied query against the local db and prints the results"); } public void run(RobonoboConsole console, String[] args, PrintWriter out) throws Exception { if (args.length < 2) { printHelp(out); return; } Connection conn; if(args[0].equalsIgnoreCase("meta")) conn = console.getController().getMetadataDbConnection(); else if(args[0].equalsIgnoreCase("page")) conn = console.getController().getPageDbConnection(); else { printHelp(out); return; } String query = args[1]; try { DbUtil.runQuery(conn, query, out); } finally { if(args[0].equalsIgnoreCase("meta")) console.getController().returnMetadataDbConnection(conn); else if(args[0].equalsIgnoreCase("page")) console.getController().returnPageDbConnection(conn); else throw new SeekInnerCalmException(); } } }