Add korapxml2conllu shortcut
Change-Id: Ic53e088042a27bd046563805fcd9d3aa8744cf01
diff --git a/app/build.gradle b/app/build.gradle
index 555c245..fa09110 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -150,8 +150,10 @@
def binDir = rootProject.file("build/bin")
def targetExec = new File(binDir, "korapxmltool")
def krillExec = new File(binDir, "korapxml2krill")
+ def conlluExec = new File(binDir, "korapxml2conllu")
outputs.file(targetExec)
outputs.file(krillExec)
+ outputs.file(conlluExec)
doLast {
def shebang = rootProject.file("korapxmltool.shebang")
@@ -187,6 +189,22 @@
java.nio.file.Files.copy(targetExec.toPath(), krillExec.toPath())
krillExec.setExecutable(true, false)
}
+
+ // Create korapxml2conllu symlink for backward compatibility
+ if (conlluExec.exists()) {
+ conlluExec.delete()
+ }
+ try {
+ java.nio.file.Files.createSymbolicLink(
+ conlluExec.toPath(),
+ java.nio.file.Paths.get("korapxmltool")
+ )
+ println "Created symlink: korapxml2conllu -> korapxmltool"
+ } catch (Exception e) {
+ println "Warning: Could not create korapxml2conllu symlink (${e.message}), copying instead"
+ java.nio.file.Files.copy(targetExec.toPath(), conlluExec.toPath())
+ conlluExec.setExecutable(true, false)
+ }
}
}
diff --git a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
index fbe3468..149b248 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
@@ -4400,45 +4400,75 @@
val programName = System.getProperty("sun.java.command")?.split(" ")?.first()?.split("/")?.last()
?: File(System.getProperty("java.class.path")).name
- val filteredArgs = if (programName == "korapxml2krill") {
- // Filter out Perl-specific options and add krill format
- val perlOptions = setOf("-z", "-w", "-c")
- val newArgs = mutableListOf<String>()
-
- // Always set krill output format for korapxml2krill
- if (!args.contains("-t") && !args.contains("--to")) {
- newArgs.add("-t")
- newArgs.add("krill")
- }
-
- var i = 0
- while (i < args.size) {
- val arg = args[i]
- when {
- perlOptions.contains(arg) -> {
- // Skip this option
- if (arg == "-c" && i + 1 < args.size) {
- // Skip -c and its argument
- i++
+ val filteredArgs = when (programName) {
+ "korapxml2krill" -> {
+ // Filter out Perl-specific options and add krill format
+ val perlOptions = setOf("-z", "-w", "-c")
+ val newArgs = mutableListOf<String>()
+
+ // Always set krill output format for korapxml2krill
+ if (!args.contains("-t") && !args.contains("--to")) {
+ newArgs.add("-t")
+ newArgs.add("krill")
+ }
+
+ var i = 0
+ while (i < args.size) {
+ val arg = args[i]
+ when {
+ perlOptions.contains(arg) -> {
+ // Skip this option
+ if (arg == "-c" && i + 1 < args.size) {
+ // Skip -c and its argument
+ i++
+ }
}
+ arg == "-t" || arg == "--to" -> {
+ // If format is already specified, override with krill
+ newArgs.add(arg)
+ if (i + 1 < args.size) {
+ i++
+ newArgs.add("krill")
+ }
+ }
+ else -> newArgs.add(arg)
}
- arg == "-t" || arg == "--to" -> {
- // If format is already specified, override with krill
+ i++
+ }
+
+ System.err.println("korapxml2krill compatibility mode: filtered arguments")
+ newArgs.toTypedArray()
+ }
+ "korapxml2conllu" -> {
+ // Set conllu output format for korapxml2conllu
+ val newArgs = mutableListOf<String>()
+
+ // Always set conllu output format
+ if (!args.contains("-t") && !args.contains("--to")) {
+ newArgs.add("-t")
+ newArgs.add("conllu")
+ }
+
+ var i = 0
+ while (i < args.size) {
+ val arg = args[i]
+ if (arg == "-t" || arg == "--to") {
+ // If format is already specified, override with conllu
newArgs.add(arg)
if (i + 1 < args.size) {
i++
- newArgs.add("krill")
+ newArgs.add("conllu")
}
+ } else {
+ newArgs.add(arg)
}
- else -> newArgs.add(arg)
+ i++
}
- i++
+
+ System.err.println("korapxml2conllu compatibility mode: using conllu format")
+ newArgs.toTypedArray()
}
-
- System.err.println("korapxml2krill compatibility mode: filtered arguments")
- newArgs.toTypedArray()
- } else {
- args
+ else -> args
}
exitProcess(CommandLine(KorapXmlTool()).execute(*filteredArgs))