You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2016/05/20 11:52:49 UTC

svn commit: r1744721 - /commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/cli/Digest.java

Author: sebb
Date: Fri May 20 11:52:49 2016
New Revision: 1744721

URL: http://svn.apache.org/viewvc?rev=1744721&view=rev
Log:
Handle multiple arguments

Modified:
    commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/cli/Digest.java

Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/cli/Digest.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/cli/Digest.java?rev=1744721&r1=1744720&r2=1744721&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/cli/Digest.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/cli/Digest.java Fri May 20 11:52:49 2016
@@ -46,7 +46,7 @@ public class Digest {
      * @param args
      *            {@code args[0]} is one of {@link MessageDigestAlgorithms} name, {@link MessageDigest} name, {@code ALL}
      *            , or {@code *}. 
-     *            {@code args[1]} is a FILE.
+     *            {@code args[1+]} is a FILE/DIRECTORY/String.
      * @throws IOException
      */
     public static void main(String[] args) throws IOException {
@@ -55,7 +55,7 @@ public class Digest {
 
     private final String algorithm;
     private final String[] args;
-    private final String source;
+    private final String[] inputs;
 
     private Digest(final String[] args) {
         if (args == null) {
@@ -63,11 +63,16 @@ public class Digest {
         }
         if (args.length == 0) {
             throw new IllegalArgumentException(
-                    String.format("Usage: java %s [algorithm] [FILE|DIRECTORY|string]", Digest.class.getName()));
+                    String.format("Usage: java %s [algorithm] [FILE|DIRECTORY|string] ...", Digest.class.getName()));
         }
         this.args = args;
         algorithm = args[0];
-        source = args.length == 1 ? null : args[1];
+        if (args.length <= 1) {
+            inputs = null;
+        } else {
+            inputs = new String[args.length -1];
+            System.arraycopy(args, 1, inputs, 0, inputs.length);            
+        }
     }
 
     private void println(final String prefix, final byte[] digest) {
@@ -105,19 +110,21 @@ public class Digest {
     }
 
     private void run(String prefix, final MessageDigest messageDigest) throws IOException {
-        if (source == null) {
+        if (inputs == null) {
             println(prefix, DigestUtils.digest(messageDigest, System.in));
             return;
         }
-        final File file = new File(source);
-        if (file.isFile()) {
-            println(prefix, DigestUtils.digest(messageDigest, file), source);
-        } else if (file.isDirectory()) {
-            run(prefix, messageDigest, file.listFiles());
-        } else {
-            // use the default charset for the command-line parameter
-            final byte[] bytes = source.getBytes(Charset.defaultCharset());
-            println(prefix, DigestUtils.digest(messageDigest, bytes));
+        for(String source : inputs) {
+            final File file = new File(source);
+            if (file.isFile()) {
+                println(prefix, DigestUtils.digest(messageDigest, file), source);
+            } else if (file.isDirectory()) {
+                run(prefix, messageDigest, file.listFiles());
+            } else {
+                // use the default charset for the command-line parameter
+                final byte[] bytes = source.getBytes(Charset.defaultCharset());
+                println(prefix, DigestUtils.digest(messageDigest, bytes));
+            }
         }
     }