@@ -25,6 +25,9 @@ abstract class AbstractMainBuildAuxiliaryDockerRequirements extends FixtureAnyFu
2525
2626 protected val image = " bash:3.2"
2727 protected val dockerTag = " viash_requirements_testbench"
28+ // jq setup requirement to be prepended to Docker engine setup.
29+ // Subclasses should override this for non-Alpine images.
30+ protected val jqSetup : String = """ { "type": "apk", "packages": ["jq"] }"""
2831
2932 case class FixtureParam ()
3033
@@ -45,7 +48,13 @@ abstract class AbstractMainBuildAuxiliaryDockerRequirements extends FixtureAnyFu
4548 }
4649
4750 def deriveEngineConfig (setup : Option [String ], test_setup : Option [String ], name : String ): String = {
48- val setupStr = setup.map(s => s """ , "setup": $s""" ).getOrElse(" " )
51+ val allSetupItems = setup match {
52+ case Some (s) =>
53+ val inner = s.trim.stripPrefix(" [" ).stripSuffix(" ]" ).trim
54+ if (inner.nonEmpty) s " $jqSetup, $inner" else jqSetup
55+ case None => jqSetup
56+ }
57+ val setupStr = s """ , "setup": [ $allSetupItems] """
4958 val testSetupStr = test_setup.map(s => s """ , "test_setup": $s""" ).getOrElse(" " )
5059
5160 configDeriver.derive(
@@ -142,6 +151,7 @@ class MainBuildAuxiliaryDockerRequirementsApk extends AbstractMainBuildAuxiliary
142151class MainBuildAuxiliaryDockerRequirementsApt extends AbstractMainBuildAuxiliaryDockerRequirements {
143152 override val dockerTag = " viash_requirements_testbench_apt"
144153 override val image = " debian:bullseye-slim"
154+ override protected val jqSetup : String = """ { "type": "apt", "packages": ["jq"] }"""
145155
146156 test(" setup; check base image for apt still does not contain the cowsay package" , DockerTest ) { f =>
147157 val newConfigFilePath = deriveEngineConfig(None , None , " apt_base" )
@@ -219,6 +229,7 @@ class MainBuildAuxiliaryDockerRequirementsApt extends AbstractMainBuildAuxiliary
219229class MainBuildAuxiliaryDockerRequirementsYum extends AbstractMainBuildAuxiliaryDockerRequirements {
220230 override val dockerTag = " viash_requirements_testbench_yum"
221231 override val image = " fedora:38"
232+ override protected val jqSetup : String = """ { "type": "yum", "packages": ["jq"] }"""
222233
223234 test(" setup; check base image for yum still does not contain the which package" , DockerTest ) { f =>
224235 val newConfigFilePath = deriveEngineConfig(None , None , " yum_base" )
@@ -296,6 +307,7 @@ class MainBuildAuxiliaryDockerRequirementsYum extends AbstractMainBuildAuxiliary
296307class MainBuildAuxiliaryDockerRequirementsRuby extends AbstractMainBuildAuxiliaryDockerRequirements {
297308 override val dockerTag = " viash_requirements_testbench_ruby"
298309 override val image = " ruby:slim-bullseye"
310+ override protected val jqSetup : String = """ { "type": "apt", "packages": ["jq"] }"""
299311
300312 test(" setup; check base image for yum still does not contain the which package" , DockerTest ) { f =>
301313 val newConfigFilePath = deriveEngineConfig(None , None , " ruby_base" )
@@ -373,6 +385,7 @@ class MainBuildAuxiliaryDockerRequirementsRuby extends AbstractMainBuildAuxiliar
373385class MainBuildAuxiliaryDockerRequirementsR extends AbstractMainBuildAuxiliaryDockerRequirements {
374386 override val dockerTag = " viash_requirements_testbench_r"
375387 override val image = " r-base:4.3.1"
388+ override protected val jqSetup : String = """ { "type": "apt", "packages": ["jq"] }"""
376389
377390 test(" setup; check base image for r still does not contain the glue package" , DockerTest ) { f =>
378391 val newConfigFilePath = deriveEngineConfig(None , None , " r_base" )
@@ -484,6 +497,7 @@ class MainBuildAuxiliaryDockerRequirementsR extends AbstractMainBuildAuxiliaryDo
484497class MainBuildAuxiliaryDockerRequirementsRBioc extends AbstractMainBuildAuxiliaryDockerRequirements {
485498 override val dockerTag = " viash_requirements_testbench_rbioc"
486499 override val image = " r-base:4.3.1"
500+ override protected val jqSetup : String = """ { "type": "apt", "packages": ["jq"] }"""
487501
488502 test(" setup; check base image for r-bioc still does not contain the BiocGenerics package" , DockerTest ) { f =>
489503 val newConfigFilePath = deriveEngineConfig(None , None , " rbioc_base" )
0 commit comments