Search in sources :

Example 1 with InteractiveReader

use of com.blackducksoftware.integration.hub.detect.interactive.reader.InteractiveReader in project hub-detect by blackducksoftware.

the class Application method init.

@PostConstruct
public void init() {
    final long start = System.currentTimeMillis();
    try {
        detectInfo.init();
        detectOptionManager.init();
        final List<DetectOption> options = detectOptionManager.getDetectOptions();
        boolean isPrintHelp = false;
        boolean isPrintHelpDoc = false;
        boolean isInteractive = false;
        for (final String arg : applicationArguments.getSourceArgs()) {
            if (arg.equals("-h") || arg.equals("--help")) {
                isPrintHelp = true;
            } else if (arg.equals("-hdoc") || arg.equals("--helpdocument")) {
                isPrintHelpDoc = true;
            } else if (arg.equals("-i") || arg.equals("--interactive")) {
                isInteractive = true;
            }
        }
        if (isPrintHelp) {
            helpPrinter.printHelpMessage(System.out, options);
            return;
        }
        if (isPrintHelpDoc) {
            helpHtmlWriter.writeHelpMessage(String.format("hub-detect-%s-help.html", detectInfo.getDetectVersion()));
            return;
        }
        if (isInteractive) {
            final InteractiveReader interactiveReader = createInteractiveReader();
            final PrintStream interactivePrintStream = new PrintStream(System.out);
            interactiveManager.interact(interactiveReader, interactivePrintStream);
        }
        detectConfiguration.init();
        logger.info("Configuration processed completely.");
        if (!detectConfiguration.getSuppressConfigurationOutput()) {
            final DetectInfoPrinter infoPrinter = new DetectInfoPrinter();
            final DetectConfigurationPrinter detectConfigurationPrinter = new DetectConfigurationPrinter();
            infoPrinter.printInfo(System.out, detectInfo);
            detectConfigurationPrinter.print(System.out, detectInfo, detectConfiguration, options);
        }
        if (detectConfiguration.getTestConnection()) {
            hubServiceWrapper.assertHubConnection(new SilentLogger());
            return;
        }
        if (!detectConfiguration.getHubOfflineMode()) {
            hubServiceWrapper.init();
        }
        final DetectProject detectProject = detectProjectManager.createDetectProject();
        final List<File> createdBdioFiles = detectProjectManager.createBdioFiles(detectProject);
        if (!detectConfiguration.getHubOfflineMode()) {
            final ProjectVersionView projectVersionView = hubManager.updateHubProjectVersion(detectProject, createdBdioFiles);
            hubManager.performPostHubActions(detectProject, projectVersionView);
        } else if (!detectConfiguration.getHubSignatureScannerDisabled()) {
            hubSignatureScanner.scanPathsOffline(detectProject);
        }
        for (final ExitCodeReporter exitCodeReporter : exitCodeReporters) {
            exitCodeType = ExitCodeType.getWinningExitCodeType(exitCodeType, exitCodeReporter.getExitCodeType());
        }
    } catch (final Exception e) {
        populateExitCodeFromExceptionDetails(e);
    } finally {
        try {
            detectPhoneHomeManager.endPhoneHome();
        } catch (final Exception e) {
            logger.debug(String.format("Error trying to end the phone home task: %s", e.getMessage()));
        }
        if (!detectConfiguration.getSuppressResultsOutput()) {
            detectSummary.logResults(new Slf4jIntLogger(logger), exitCodeType);
        }
        detectFileManager.cleanupDirectories();
    }
    final long end = System.currentTimeMillis();
    logger.info(String.format("Hub-Detect run duration: %s", DurationFormatUtils.formatPeriod(start, end, "HH'h' mm'm' ss's' SSS'ms'")));
    if (detectConfiguration.getForceSuccess() && exitCodeType.getExitCode() != 0) {
        logger.warn("Forcing success: Exiting with 0. Desired exit code was ${exitCodeType.getExitCode()}.");
        System.exit(0);
    } else {
        System.exit(exitCodeType.getExitCode());
    }
}
Also used : PrintStream(java.io.PrintStream) InteractiveReader(com.blackducksoftware.integration.hub.detect.interactive.reader.InteractiveReader) ScannerInteractiveReader(com.blackducksoftware.integration.hub.detect.interactive.reader.ScannerInteractiveReader) ConsoleInteractiveReader(com.blackducksoftware.integration.hub.detect.interactive.reader.ConsoleInteractiveReader) DetectInfoPrinter(com.blackducksoftware.integration.hub.detect.help.print.DetectInfoPrinter) DetectUserFriendlyException(com.blackducksoftware.integration.hub.detect.exception.DetectUserFriendlyException) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException) IntegrationException(com.blackducksoftware.integration.exception.IntegrationException) DetectOption(com.blackducksoftware.integration.hub.detect.help.DetectOption) DetectProject(com.blackducksoftware.integration.hub.detect.model.DetectProject) ExitCodeReporter(com.blackducksoftware.integration.hub.detect.exitcode.ExitCodeReporter) DetectConfigurationPrinter(com.blackducksoftware.integration.hub.detect.help.print.DetectConfigurationPrinter) Slf4jIntLogger(com.blackducksoftware.integration.log.Slf4jIntLogger) SilentLogger(com.blackducksoftware.integration.log.SilentLogger) ProjectVersionView(com.blackducksoftware.integration.hub.api.generated.view.ProjectVersionView) File(java.io.File) PostConstruct(javax.annotation.PostConstruct)

Aggregations

IntegrationException (com.blackducksoftware.integration.exception.IntegrationException)1 ProjectVersionView (com.blackducksoftware.integration.hub.api.generated.view.ProjectVersionView)1 DetectUserFriendlyException (com.blackducksoftware.integration.hub.detect.exception.DetectUserFriendlyException)1 ExitCodeReporter (com.blackducksoftware.integration.hub.detect.exitcode.ExitCodeReporter)1 DetectOption (com.blackducksoftware.integration.hub.detect.help.DetectOption)1 DetectConfigurationPrinter (com.blackducksoftware.integration.hub.detect.help.print.DetectConfigurationPrinter)1 DetectInfoPrinter (com.blackducksoftware.integration.hub.detect.help.print.DetectInfoPrinter)1 ConsoleInteractiveReader (com.blackducksoftware.integration.hub.detect.interactive.reader.ConsoleInteractiveReader)1 InteractiveReader (com.blackducksoftware.integration.hub.detect.interactive.reader.InteractiveReader)1 ScannerInteractiveReader (com.blackducksoftware.integration.hub.detect.interactive.reader.ScannerInteractiveReader)1 DetectProject (com.blackducksoftware.integration.hub.detect.model.DetectProject)1 SilentLogger (com.blackducksoftware.integration.log.SilentLogger)1 Slf4jIntLogger (com.blackducksoftware.integration.log.Slf4jIntLogger)1 File (java.io.File)1 PrintStream (java.io.PrintStream)1 PostConstruct (javax.annotation.PostConstruct)1 ParserConfigurationException (javax.xml.parsers.ParserConfigurationException)1