This is an automated email from the ASF dual-hosted git repository.

pvillard pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 946064b1c4 NIFI-11460 Switched to JLine 3.23.0 FileNameCompleter
946064b1c4 is described below

commit 946064b1c45ddb8e377e5e9be278ed3c39494298
Author: exceptionfactory <[email protected]>
AuthorDate: Mon Apr 17 10:32:14 2023 -0500

    NIFI-11460 Switched to JLine 3.23.0 FileNameCompleter
    
    Removed project StandardFileNameCompleter no longer required as of JLine 
3.23.0 which incorporated JLine Pull Request 817
    
    Signed-off-by: Pierre Villard <[email protected]>
    
    This closes #7175.
---
 .../org/apache/nifi/toolkit/cli/CLICompleter.java  |   4 +-
 .../cli/impl/util/StandardFileNameCompleter.java   | 115 ---------------------
 2 files changed, 2 insertions(+), 117 deletions(-)

diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/CLICompleter.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/CLICompleter.java
index 1c0dd90461..353e947eab 100644
--- 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/CLICompleter.java
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/CLICompleter.java
@@ -21,7 +21,7 @@ import org.apache.nifi.toolkit.cli.api.CommandGroup;
 import org.apache.nifi.toolkit.cli.impl.command.CommandOption;
 import org.apache.nifi.toolkit.cli.impl.command.session.SessionCommandGroup;
 import org.apache.nifi.toolkit.cli.impl.session.SessionVariable;
-import org.apache.nifi.toolkit.cli.impl.util.StandardFileNameCompleter;
+import org.jline.builtins.Completers;
 import org.jline.reader.Candidate;
 import org.jline.reader.Completer;
 import org.jline.reader.LineReader;
@@ -77,7 +77,7 @@ public class CLICompleter implements Completer {
      */
     private final Map<String, List<String>> commandOptionsMap;
 
-    private final Completer fileNameCompleter = new 
StandardFileNameCompleter();
+    private final Completer fileNameCompleter = new 
Completers.FileNameCompleter();
 
     /**
      * Initializes the completer based on the top-level commands and command 
groups.
diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/util/StandardFileNameCompleter.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/util/StandardFileNameCompleter.java
deleted file mode 100644
index 3b39dbd5b3..0000000000
--- 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/util/StandardFileNameCompleter.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * 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.cli.impl.util;
-
-import org.jline.builtins.Completers;
-import org.jline.builtins.Styles;
-import org.jline.reader.Candidate;
-import org.jline.reader.LineReader;
-import org.jline.reader.ParsedLine;
-import org.jline.utils.StyleResolver;
-
-import java.io.IOException;
-import java.nio.file.DirectoryStream;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.List;
-
-/**
- * Standard File Name Completer overriding references to Styles.lsStyle() to 
avoid parsing issues with LS_COLORS
- */
-public class StandardFileNameCompleter extends Completers.FileNameCompleter {
-    private static final String STANDARD_LS_COLORS = 
"di=1;91:ex=1;92:ln=1;96:fi=";
-
-    private static final String HOME_DIRECTORY_ALIAS = "~";
-
-    private static final String EMPTY = "";
-
-    private static final StyleResolver STYLE_RESOLVER = 
Styles.style(STANDARD_LS_COLORS);
-
-    /**
-     * Complete file names based on JLine 3.22.0 without calling 
Styles.lsStyle()
-     *
-     * @param reader        Line Reader
-     * @param commandLine   Parsed Command
-     * @param candidates    Candidates to be populated
-     */
-    @Override
-    public void complete(final LineReader reader, final ParsedLine 
commandLine, final List<Candidate> candidates) {
-        assert commandLine != null;
-        assert candidates != null;
-
-        final String buffer = commandLine.word().substring(0, 
commandLine.wordCursor());
-
-        final Path current;
-        final String curBuf;
-        final String sep = 
getSeparator(reader.isSet(LineReader.Option.USE_FORWARD_SLASH));
-        final int lastSep = buffer.lastIndexOf(sep);
-        try {
-            if (lastSep >= 0) {
-                curBuf = buffer.substring(0, lastSep + 1);
-                if (curBuf.startsWith(HOME_DIRECTORY_ALIAS)) {
-                    if (curBuf.startsWith(HOME_DIRECTORY_ALIAS + sep)) {
-                        current = getUserHome().resolve(curBuf.substring(2));
-                    } else {
-                        current = 
getUserHome().getParent().resolve(curBuf.substring(1));
-                    }
-                } else {
-                    current = getUserDir().resolve(curBuf);
-                }
-            } else {
-                curBuf = EMPTY;
-                current = getUserDir();
-            }
-
-            try (final DirectoryStream<Path> directory = 
Files.newDirectoryStream(current, this::accept)) {
-                directory.forEach(path -> {
-                    final String value = curBuf + 
path.getFileName().toString();
-                    if (Files.isDirectory(path)) {
-                        candidates.add(
-                                new Candidate(
-                                        value + 
(reader.isSet(LineReader.Option.AUTO_PARAM_SLASH) ? sep : EMPTY),
-                                        getDisplay(reader.getTerminal(), path, 
STYLE_RESOLVER, sep),
-                                        null,
-                                        null,
-                                        
reader.isSet(LineReader.Option.AUTO_REMOVE_SLASH) ? sep : null,
-                                        null,
-                                        false
-                                )
-                        );
-                    } else {
-                        candidates.add(
-                                new Candidate(
-                                        value,
-                                        getDisplay(reader.getTerminal(), path, 
STYLE_RESOLVER, sep),
-                                        null,
-                                        null,
-                                        null,
-                                        null,
-                                        true
-                                )
-                        );
-                    }
-                });
-            } catch (final IOException e) {
-                // Ignore
-            }
-        } catch (final Exception e) {
-            // Ignore
-        }
-    }
-}

Reply via email to