# HG changeset patch # User wenzelm # Date 1484491804 -3600 # Node ID 749d3a86c6a3322cea4fa1c39edeb79184ea3148 # Parent 49aa13b1b59296fd24e1915c14cb884ab2fa9115 clarified signature: packages may be accessed in Isabelle/Scala; diff -r 49aa13b1b592 -r 749d3a86c6a3 src/Pure/Admin/build_docker.scala --- a/src/Pure/Admin/build_docker.scala Sun Jan 15 15:48:26 2017 +0100 +++ b/src/Pure/Admin/build_docker.scala Sun Jan 15 15:50:04 2017 +0100 @@ -11,10 +11,10 @@ { private lazy val default_logic = Isabelle_System.getenv("ISABELLE_LOGIC") - private val standard_packages = + val packages: List[String] = List("less", "lib32stdc++6", "libgomp1", "libwww-perl", "rlwrap", "unzip") - private val package_collections = + val package_collections: Map[String, List[String]] = Map("X11" -> List("libx11-6", "libxext6", "libxrender1", "libxtst6", "libxi6"), "latex" -> List("texlive-fonts-extra", "texlive-latex-extra", "texlive-math-extra")) @@ -22,7 +22,7 @@ app_archive: Path, logic: String = default_logic, output: Option[Path] = None, - packages: List[String] = Nil, + more_packages: List[String] = Nil, tag: String = "", verbose: Boolean = false) { @@ -43,7 +43,7 @@ # packages RUN apt-get -y update && \ - apt-get install -y """ + (standard_packages ::: packages).map(Bash.string(_)).mkString(" ") + """ && \ + apt-get install -y """ + (packages ::: more_packages).map(Bash.string(_)).mkString(" ") + """ && \ apt-get clean # user @@ -85,7 +85,7 @@ { var logic = default_logic var output: Option[Path] = None - var packages: List[String] = Nil + var more_packages: List[String] = Nil var verbose = false var tag = "" @@ -111,12 +111,12 @@ """, "P:" -> (arg => package_collections.get(arg) match { - case Some(ps) => packages :::= ps + case Some(ps) => more_packages :::= ps case None => error("Unknown package collection " + quote(arg)) }), "l:" -> (arg => logic = arg), "o:" -> (arg => output = Some(Path.explode(arg))), - "p:" -> (arg => packages ::= arg), + "p:" -> (arg => more_packages ::= arg), "t:" -> (arg => tag = arg), "v" -> (_ => verbose = true)) @@ -128,6 +128,6 @@ } build_docker(new Console_Progress(), app_archive, logic = logic, output = output, - packages = packages, tag = tag, verbose = verbose) + more_packages = more_packages, tag = tag, verbose = verbose) }, admin = true) }