Add korapxml2krill shortcut

Change-Id: Ie0bd14ecff709bdde9a5d443e57ba6e073d1d8fc
diff --git a/app/build.gradle b/app/build.gradle
index 97af808..555c245 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -149,7 +149,9 @@
     
     def binDir = rootProject.file("build/bin")
     def targetExec = new File(binDir, "korapxmltool")
+    def krillExec = new File(binDir, "korapxml2krill")
     outputs.file(targetExec)
+    outputs.file(krillExec)
 
     doLast {
         def shebang = rootProject.file("korapxmltool.shebang")
@@ -162,12 +164,29 @@
 
         def targetJar = shadowJar.archiveFile.get().asFile
 
+        // Create main korapxmltool executable
         targetExec.withOutputStream { os ->
             os << shebang.bytes
             os << targetJar.bytes
         }
         targetExec.setExecutable(true, false)
         println "Created executable launcher: ${targetExec}"
+
+        // Create korapxml2krill symlink for backward compatibility
+        if (krillExec.exists()) {
+            krillExec.delete()
+        }
+        try {
+            java.nio.file.Files.createSymbolicLink(
+                krillExec.toPath(),
+                java.nio.file.Paths.get("korapxmltool")
+            )
+            println "Created symlink: korapxml2krill -> korapxmltool"
+        } catch (Exception e) {
+            println "Warning: Could not create korapxml2krill symlink (${e.message}), copying instead"
+            java.nio.file.Files.copy(targetExec.toPath(), krillExec.toPath())
+            krillExec.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 65831fa..fbe3468 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
@@ -4395,7 +4395,53 @@
 
 fun main(args: Array<String>): Unit {
     try { Locale.setDefault(Locale.ROOT) } catch (_: Exception) {}
-    exitProcess(CommandLine(KorapXmlTool()).execute(*args))
+    
+    // Check if called as korapxml2krill for backward compatibility
+    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++
+                    }
+                }
+                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)
+            }
+            i++
+        }
+        
+        System.err.println("korapxml2krill compatibility mode: filtered arguments")
+        newArgs.toTypedArray()
+    } else {
+        args
+    }
+    
+    exitProcess(CommandLine(KorapXmlTool()).execute(*filteredArgs))
 }
 
 /**