kotlin-shell icon indicating copy to clipboard operation
kotlin-shell copied to clipboard

::export with vararg

Open elect86 opened this issue 3 years ago • 2 comments

Hi,

super cool project!

I need to define multiple exports like:

export JAVA_OPTS='-Xms82G -Xmx82G -XX:+UseParallelGC'
export EPISIM_SETUP='org.matsim.run.batch.DresdenCalibration'
export EPISIM_PARAMS='org.matsim.run.batch.DresdenCalibration$Params'
export EPISIM_INPUT='dresden'
export EPISIM_OUTPUT='output-dresden'

I'd like another ::export that accept a vararg, in this way I may simply type

export(
   "JAVA_OPTS" to "-Xms82G -Xmx82G -XX:+UseParallelGC",
   "EPISIM_SETUP" to "org.matsim.run.batch.DresdenCalibration",
   "EPISIM_PARAMS" to "org.matsim.run.batch.DresdenCalibration$Params",
   "EPISIM_INPUT" to "dresden",
   "EPISIM_OUTPUT" to "output-dresden")

elect86 avatar Sep 14 '21 15:09 elect86

Hi! Vararg export seems like a good idea 🙂

For now I can suggest to do something like this:

listOf(
   |"JAVA_OPTS" to "-Xms82G -Xmx82G -XX:+UseParallelGC",
   "EPISIM_SETUP" to "org.matsim.run.batch.DresdenCalibration",
   "EPISIM_PARAMS" to "org.matsim.run.batch.DresdenCalibration$Params",
   "EPISIM_INPUT" to "dresden",
   "EPISIM_OUTPUT" to "output-dresden"
).forEach { export(it)}

jakubriegel avatar Sep 15 '21 07:09 jakubriegel

I went with

    fun exports(vararg exports: Pair<String, String>) = exports.map { export(it) }
    exports(
        "JAVA_OPTS" to "-Xms82G -Xmx82G -XX:+UseParallelGC",
        "EPISIM_SETUP" to "org.matsim.run.batch.DresdenCalibration",
        "EPISIM_PARAMS" to "org.matsim.run.batch.DresdenCalibration\$Params",
        "EPISIM_INPUT" to "dresden",
        "EPISIM_OUTPUT" to "output-dresden")

elect86 avatar Sep 15 '21 08:09 elect86