package gov.nysenate.openleg.script;
import gov.nysenate.openleg.processor.daybreak.DaybreakProcessService;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.Options;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.stereotype.Component;
@Component
public class ProcessDaybreaks extends BaseScript {
private static final Logger logger = LoggerFactory.getLogger(ProcessDaybreaks.class);
@Autowired
private DaybreakProcessService daybreakProcessService;
public static void main(String[] arg) throws Exception {
AnnotationConfigApplicationContext ctx = BaseScript.init();
ProcessDaybreaks processDaybreaks = ctx.getBean(ProcessDaybreaks.class);
CommandLine cmd = getCommandLine(processDaybreaks.getOptions(), arg);
processDaybreaks.execute(cmd);
shutdown(ctx);
}
@Override
protected Options getOptions() {
Options options = new Options();
options.addOption("c", "collate", false, "Will collate daybreak files without processing afterwards unless --process is set");
options.addOption("p", "process", false, "Will process pending daybreak fragments without collating first unless --collate is set");
return options;
}
@Override
protected void execute(CommandLine opts) throws Exception {
boolean collate = opts.hasOption("collate");
boolean process = opts.hasOption("process");
if(collate || !process) {
logger.info("Collating daybreak files.");
daybreakProcessService.collateDaybreakReports();
}
if(process || !collate) {
logger.info("Processing pending daybreak fragments.");
daybreakProcessService.processPendingFragments();
}
logger.info("done");
}
}