package uk.co.optimisticpanda.dropwizard.commands;
import net.sourceforge.argparse4j.inf.Namespace;
import net.sourceforge.argparse4j.inf.Subparser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import uk.co.optimisticpanda.dropwizard.DbDeployConfigurationStrategy;
import uk.co.optimisticpanda.dropwizard.DbDeployDatabaseConfiguration;
import uk.co.optimisticpanda.dropwizard.dbdeploy.ClasspathDbDeploy;
import com.yammer.dropwizard.config.Configuration;
public class RunScriptCommand<T extends Configuration> extends AbstractDbDeployCommand<T> {
private static Logger log = LoggerFactory.getLogger(RunScriptCommand.class);
protected RunScriptCommand(String name, String description, DbDeployConfigurationStrategy<T> strategy, Class<T> configurationClass) {
super(name, description, strategy, configurationClass);
}
@Override
protected void run(Namespace namespace, ClasspathDbDeploy dbdeploy, DbDeployDatabaseConfiguration config) throws Exception {
String script = namespace.getString("script");
log.info("Executing script located at [{}]", script);
dbdeploy.executeScript(script);
}
@Override
public void configure(Subparser subparser) {
subparser.addArgument("--script","-s") //
.dest("script").help("Specifies which script should be run. Based on the scripts map in the dropwizard config");
super.configure(subparser);
}
}