package com.intrbiz.bergamot.command.admin; import java.util.List; import com.intrbiz.Util; import com.intrbiz.bergamot.BergamotCLI; import com.intrbiz.bergamot.BergamotCLICommand; import com.intrbiz.bergamot.config.UICfg; import com.intrbiz.bergamot.data.BergamotDB; import com.intrbiz.bergamot.model.Site; import com.intrbiz.data.DataManager; import com.intrbiz.util.pool.database.DatabasePool; public class ListSitesCommand extends BergamotCLICommand { public ListSitesCommand() { super(); } @Override public String name() { return "list-sites"; } @Override public boolean admin() { return true; } @Override public String usage() { return ""; } @Override public String help() { return "List all Bergamot sites which are configured\n"; } @Override public int execute(BergamotCLI cli, List<String> args) throws Exception { // read the UI config and connect to the database UICfg config = UICfg.loadConfiguration(); // setup the data manager DataManager.getInstance().registerDefaultServer(DatabasePool.Default.with().postgresql().url(config.getDatabase().getUrl()).username(config.getDatabase().getUsername()).password(config.getDatabase().getPassword()).build()); // ensure the DB schema is installed BergamotDB.install(); // now actually create the site try (BergamotDB db = BergamotDB.connect()) { System.out.println("Sites:"); for (Site site : db.listSites()) { System.out.println(site.getName() + " (" + site.getId() + ") '" + site.getSummary() + "'" + (site.getAliases().isEmpty() ? "" : " [" + Util.join(", ", site.getAliases()) + "]")); } } // all ok return 0; } }