You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2018/03/27 05:16:42 UTC

svn commit: r1827806 - /jackrabbit/commons/filevault/trunk/vault-cli/src/main/java/org/apache/jackrabbit/vault/cli/CmdFormatCli.java

Author: tripod
Date: Tue Mar 27 05:16:42 2018
New Revision: 1827806

URL: http://svn.apache.org/viewvc?rev=1827806&view=rev
Log:
JCRVLT-271 Support a CLI command to format vault xml files

Modified:
    jackrabbit/commons/filevault/trunk/vault-cli/src/main/java/org/apache/jackrabbit/vault/cli/CmdFormatCli.java

Modified: jackrabbit/commons/filevault/trunk/vault-cli/src/main/java/org/apache/jackrabbit/vault/cli/CmdFormatCli.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-cli/src/main/java/org/apache/jackrabbit/vault/cli/CmdFormatCli.java?rev=1827806&r1=1827805&r2=1827806&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-cli/src/main/java/org/apache/jackrabbit/vault/cli/CmdFormatCli.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-cli/src/main/java/org/apache/jackrabbit/vault/cli/CmdFormatCli.java Tue Mar 27 05:16:42 2018
@@ -49,16 +49,26 @@ public class CmdFormatCli extends Abstra
         boolean checkOnly = cl.hasOption(optCheckOnly);
         boolean verbose = cl.hasOption(OPT_VERBOSE);
         List<String> givenPatterns = (List<String>) cl.getValues(optPatterns);
-        List<Pattern> parsedPatterns = new ArrayList<>(givenPatterns.size());
+        List<String> localPaths = new LinkedList<String>(cl.getValues(argPaths));
 
+        List<Pattern> parsedPatterns = new ArrayList<>(givenPatterns.size());
+        boolean hasArgSeparator = false;
         for (String pattern : givenPatterns) {
-            parsedPatterns.add(Pattern.compile(pattern));
+            if ("--".equals(pattern)) {
+                // little hack to separate the patterns from the files
+                hasArgSeparator = true;
+            } else {
+                if (hasArgSeparator) {
+                    localPaths.add(0, pattern);
+                } else {
+                    parsedPatterns.add(Pattern.compile(pattern));
+                }
+            }
         }
         if (parsedPatterns.isEmpty()) {
             parsedPatterns.add(DEFAULT_PATTERN);
         }
 
-        List<String> localPaths = cl.getValues(argPaths);
         List<File> localFiles = app.getPlatformFiles(localPaths, true);
         if (localFiles.isEmpty()) {
             localFiles.add(app.getPlatformFile(".", true));
@@ -122,6 +132,7 @@ public class CmdFormatCli extends Abstra
                                 .withDescription("pattern for recursive format. defaults to match all xml files.")
                                 .withArgument(new ArgumentBuilder()
                                         .withMinimum(0)
+                                        .withConsumeRemaining("**dummy**")
                                         .create())
                                 .create())
                         .withOption(argPaths = new ArgumentBuilder()
@@ -143,8 +154,10 @@ public class CmdFormatCli extends Abstra
     public String getLongDescription() {
         return  "Formats the file specified by <path> according to the vault specific docview format." +
                 "If the <path> points at a directory, the files matching the patterns are processed recursively.\n\n" +
-                "Example:\n" +
-                "  vlt format -c -p '\\\\.content\\\\.xml' content/jcr_root\n\n";
+                "Examples:\n" +
+                "  vlt format -c -p '\\.content\\.xml' content/jcr_root\n\n" +
+                "" +
+                "  vlt format -p \\.content\\.xml -p _jcr_content\\.xml -- apps/";
     }
 
 }