diff --git a/pom.xml b/pom.xml
index b1569e4..f8ad4fb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -93,6 +93,11 @@
commons-cli
1.8.0
+
+ commons-io
+ commons-io
+ 2.8.0
+
diff --git a/src/main/java/de/maishai/Compiler.java b/src/main/java/de/maishai/Compiler.java
index b2c318d..1639d60 100644
--- a/src/main/java/de/maishai/Compiler.java
+++ b/src/main/java/de/maishai/Compiler.java
@@ -10,9 +10,13 @@ import de.maishai.typedast.typedclass.TypedClass;
import de.maishai.typedast.typedclass.TypedProgram;
import org.antlr.v4.runtime.*;
import org.apache.commons.cli.*;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.filefilter.WildcardFileFilter;
+import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import java.util.logging.Formatter;
import java.util.logging.Handler;
@@ -137,9 +141,27 @@ public class Compiler {
List sourcePaths = new ArrayList<>();
for (String arg : cmd.getArgs()) {
- String sourcePath = arg.endsWith(JAVA_FILE_EXTENSION) ? arg : arg + JAVA_FILE_EXTENSION;
- sourcePaths.add(sourcePath);
+ if (arg.contains("*")) {
+ sourcePaths.addAll(expandWildcards(arg));
+ } else {
+ String sourcePath = arg.endsWith(JAVA_FILE_EXTENSION) ? arg : arg + JAVA_FILE_EXTENSION;
+ sourcePaths.add(sourcePath);
+ }
}
generateByteCodeFilesFromFiles(sourcePaths);
}
+
+ private static List expandWildcards(String pattern) {
+ List matchingFiles = new ArrayList<>();
+ try {
+ File dir = new File(".");
+ Collection files = FileUtils.listFiles(dir, new WildcardFileFilter(pattern), null);
+ for (File file : files) {
+ matchingFiles.add(file.getPath());
+ }
+ } catch (Exception e) {
+ LOGGER.severe("Error expanding wildcards: " + e.getMessage());
+ }
+ return matchingFiles;
+ }
}