# HG changeset patch # User David Barts # Date 1629905165 25200 # Node ID cd32e08fa37f797a226c062200f300a72a7d4468 # Parent a725bd48bc0b81638e958e92e27d9679eb0ec924 Add -latfirst option. diff -r a725bd48bc0b -r cd32e08fa37f MakeWaypoints.kt --- a/MakeWaypoints.kt Wed Aug 25 07:44:53 2021 -0700 +++ b/MakeWaypoints.kt Wed Aug 25 08:26:05 2021 -0700 @@ -16,15 +16,29 @@ } fun main(args: Array): Unit { - if (args.size != 1) { - System.err.println("${MYNAME}: expecting a single file name") + /* parse arguments */ + val syntaxError = "${MYNAME}: syntax: [-latfirst] file" + if (args.size < 1 || args.size > 2) { + System.err.println(syntaxError) System.exit(2) } + var latFirst = false + var fileArg = 0 + if (args[0].startsWith('-')) { + latFirst = args[0].equals("-latfirst", ignoreCase = true) + if (!latFirst || args.size != 2) { + System.err.println(syntaxError) + System.exit(2) + } + fileArg = 1 + } + val outName = args[fileArg] + /* explain purpose */ println("Enter waypoints below, end with empty line.") println() - val outName = args[0] + /* process input from user */ val invalid = "${MYNAME}: invalid entry, please try again" FileOutputStream(outName).use stream@{ XMLOutputFactory.newInstance().createXMLStreamWriter(it, CHARSET).run { @@ -35,7 +49,10 @@ writeDefaultNamespace("http://www.topografix.com/GPX/1/1") while (true) { - print("Longitude, latitude: ") + if (latFirst) + print("Latitude, longitude: ") + else + print("Longitude, latitude: ") val longLat = readLine() if (longLat.isNullOrEmpty()) { writeEndDocument() @@ -47,8 +64,10 @@ System.err.println(invalid) continue } - val long = parts[0].trim() - val lat = parts[1].trim() + val (lat, long) = if (latFirst) + Pair(parts[0].trim(), parts[1].trim()) + else + Pair(parts[1].trim(), parts[0].trim()) if (lat.toDoubleOrNull() == null || long.toDoubleOrNull() == null) { System.err.println(invalid) continue