Github user alopresto commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2376#discussion_r159932352
  
    --- Diff: 
nifi-toolkit/nifi-toolkit-encrypt-config/src/main/groovy/org/apache/nifi/toolkit/encryptconfig/EncryptConfigMain.groovy
 ---
    @@ -0,0 +1,145 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package org.apache.nifi.toolkit.encryptconfig
    +
    +import org.apache.commons.cli.HelpFormatter
    +import org.apache.commons.cli.Options
    +import org.apache.nifi.properties.ConfigEncryptionTool
    +import org.bouncycastle.jce.provider.BouncyCastleProvider
    +import org.slf4j.Logger
    +import org.slf4j.LoggerFactory
    +
    +import java.security.Security
    +
    +class EncryptConfigMain {
    +
    +    private static final Logger logger = 
LoggerFactory.getLogger(EncryptConfigMain.class)
    +
    +    static final int EXIT_STATUS_SUCCESS = 0
    +    static final int EXIT_STATUS_FAILURE = -1
    +    static final int EXIT_STATUS_OTHER = 1
    +
    +    static final String NIFI_REGISTRY_OPT = "nifiRegistry"
    +    static final String NIFI_REGISTRY_FLAG = 
"--${NIFI_REGISTRY_OPT}".toString()
    +    static final String DECRYPT_OPT = "decrypt"
    +    static final String DECRYPT_FLAG = "--${DECRYPT_OPT}".toString()
    +
    +    static final int HELP_FORMAT_WIDTH = 160
    +
    +    // Access should only be through static methods
    +    private EncryptConfigMain() {
    +    }
    +
    +    static printUsage(String message = "") {
    +
    +        if (message) {
    +            System.out.println(message)
    +            System.out.println()
    +        }
    +
    +        String header = "\nThis tool enables easy encryption and 
decryption of configuration files for NiFi and its sub-projects. " +
    +                "Unprotected files can be input to this tool to be 
protected by a key in a manner that is understood by NiFi. " +
    +                "Protected files, along with a key, can be input to this 
tool to be unprotected, for troubleshooting or automation purposes.\n\n"
    +
    +        def options = new Options()
    +        options.addOption("h", "help", false, "Show usage information 
(this message)")
    +        options.addOption(null, NIFI_REGISTRY_OPT, false, "Specifies to 
target NiFi Registry. When this flag is not included, NiFi is the target.")
    +
    +        HelpFormatter helpFormatter = new HelpFormatter()
    +        helpFormatter.setWidth(160)
    +        helpFormatter.setOptionComparator(null)
    +        
helpFormatter.printHelp("${EncryptConfigMain.class.getCanonicalName()} [-h] 
[options]", header, options, "\n")
    +        System.out.println()
    +
    +        helpFormatter.setSyntaxPrefix("") // disable "usage: " prefix for 
the following outputs
    +
    +        Options nifiModeOptions = ConfigEncryptionTool.getCliOptions()
    +        helpFormatter.printHelp(
    +                "When targeting NiFi:",
    +                nifiModeOptions,
    +                false)
    +        System.out.println()
    +
    +        Options nifiRegistryModeOptions = NiFiRegistryMode.getCliOptions()
    +        nifiRegistryModeOptions.addOption(null, DECRYPT_OPT, false, "Can 
be used with -r to decrypt a previously encrypted NiFi Registry Properties 
file. Decrypted content is printed to STDOUT.")
    +        helpFormatter.printHelp(
    +                "When targeting NiFi Registry using the 
${NIFI_REGISTRY_FLAG} flag:",
    +                nifiRegistryModeOptions,
    +                false)
    +        System.out.println()
    +
    +//        String footer = """
    +//            |
    +//            |Encrypt a NiFi Registry properties using a password:
    +//            |    encrypt-config -p <password> -b 
/path/to/nifi/conf/bootstrap.conf -r /path/to/nifi/conf/nifi.properties
    +//            |
    +//            |""".stripMargin()
    +        //helpFormatter.printHelp("Examples:", "", new Options(), footer)
    +    }
    +
    +    static void printUsageAndExit(String message = "", int exitStatusCode) 
{
    +        printUsage(message)
    +        System.exit(exitStatusCode)
    +    }
    +
    +    static void main(String[] args) {
    +        Security.addProvider(new BouncyCastleProvider())
    +
    +        if (args.length < 1) {
    +            printUsageAndExit(EXIT_STATUS_FAILURE)
    +        }
    +
    +        String firstArg = args[0]
    +
    +        if (["-h", "--help"].contains(firstArg)) {
    +            printUsageAndExit(EXIT_STATUS_OTHER)
    +        }
    +
    +        try {
    +            List<String> argsList = args
    +            ToolMode toolMode = determineModeFromArgs(argsList)
    +            if (toolMode) {
    +                toolMode.run((String[])argsList.toArray())
    +                System.exit(EXIT_STATUS_SUCCESS)
    +            } else {
    +                printUsageAndExit(EXIT_STATUS_FAILURE)
    +            }
    +        } catch (Throwable t) {
    +            logger.debug("", t)
    --- End diff --
    
    Change this to `logger.error()` as well. 


---

Reply via email to