Clairifed defaults and command-line options

This commit is contained in:
Makarius Wenzel 2022-12-01 15:26:48 +01:00
parent 068e6e0411
commit bf3085d4c0
2 changed files with 16 additions and 21 deletions

View File

@ -38,6 +38,8 @@ object DOF {
// Isabelle/DOF version: "Unreleased" for development, semantic version for releases // Isabelle/DOF version: "Unreleased" for development, semantic version for releases
val session = "Isabelle_DOF" val session = "Isabelle_DOF"
val default_ontology = "Isabelle_DOF.scholarly_paper"
val default_template = "Isabelle_DOF.scrartcl"
val latest_version = "1.3.0" val latest_version = "1.3.0"
val latest_isabelle = "Isabelle2021-1" val latest_isabelle = "Isabelle2021-1"

View File

@ -29,10 +29,7 @@
*/ */
/* Author: Makarius /*** Prepare session root directory for Isabelle/DOF ***/
Prepare session root directory for Isabelle/DOF.
*/
package isabelle.dof package isabelle.dof
@ -46,16 +43,14 @@ object DOF_Mkroot
def mkroot( def mkroot(
session_name: String = "", session_name: String = "",
session_dir: Path = Path.current, session_dir: Path = Path.current,
session_parent: String = "",
init_repos: Boolean = false, init_repos: Boolean = false,
template: String = "", ontologies: List[String] = List(DOF.default_ontology),
ontologies: List[String] = Nil, template: String = DOF.default_template,
progress: Progress = new Progress): Unit = progress: Progress = new Progress): Unit =
{ {
Isabelle_System.make_directory(session_dir) Isabelle_System.make_directory(session_dir)
val name = proper_string(session_name) getOrElse session_dir.absolute_file.getName val name = proper_string(session_name) getOrElse session_dir.absolute_file.getName
val parent = proper_string(session_parent) getOrElse Isabelle_System.getenv("ISABELLE_LOGIC")
val root_path = session_dir + Sessions.ROOT val root_path = session_dir + Sessions.ROOT
if (root_path.file.exists) error("Cannot overwrite existing " + root_path) if (root_path.file.exists) error("Cannot overwrite existing " + root_path)
@ -71,7 +66,7 @@ object DOF_Mkroot
progress.echo(" creating " + root_path) progress.echo(" creating " + root_path)
File.write(root_path, File.write(root_path,
"session " + Mkroot.root_name(name) + " = " + Mkroot.root_name(parent) + """ + "session " + Mkroot.root_name(name) + " = " + Mkroot.root_name(DOF.session) + """ +
options [document = pdf, document_output = "output", document_build = dof, dof_ontologies = """" options [document = pdf, document_output = "output", document_build = dof, dof_ontologies = """"
+ ontologies.mkString(" ") + """", dof_template = """ + Mkroot.root_name(template) + ontologies.mkString(" ") + """", dof_template = """ + Mkroot.root_name(template)
+ """, document_comment_latex = true] + """, document_comment_latex = true]
@ -151,24 +146,23 @@ Now use the following command line to build the session:
var init_repos = false var init_repos = false
var help = false var help = false
var session_name = "" var session_name = ""
var session_parent = DOF.session var ontologies = List(DOF.default_ontology)
var ontologies = List.empty[String] var template = DOF.default_template
var template = DOF.session + ".scrartcl"
val default_ontologies = List(DOF.session + ".scholarly_paper")
val getopts = Getopts(""" val getopts = Getopts("""
Usage: isabelle dof_mkroot [OPTIONS] [DIRECTORY] Usage: isabelle dof_mkroot [OPTIONS] [DIRECTORY]
Options are: Options are:
-I init Mercurial repository and add generated files -I init Mercurial repository and add generated files
-h print help
-n NAME alternative session name (default: directory base name) -n NAME alternative session name (default: directory base name)
-o ONTOLOGY ontology (default: scholarly_paper) -o ONTOLOGY additional ontology (default: """ + quote(DOF.default_ontology) + """)
-t TEMPLATE tempalte (default: scrartcl) -t TEMPLATE template (default: """ + quote(DOF.default_template) + """)
Prepare session root directory (default: current directory). Prepare session root directory for Isabelle/DOF (default: current directory).
""", """,
"I" -> (arg => init_repos = true), "I" -> (_ => init_repos = true),
"h" -> (arg => help = true), "h" -> (_ => help = true),
"n:" -> (arg => session_name = arg), "n:" -> (arg => session_name = arg),
"o:" -> (arg => ontologies = ontologies ::: List(arg)), "o:" -> (arg => ontologies = ontologies ::: List(arg)),
"t:" -> (arg => template = arg)) "t:" -> (arg => template = arg))
@ -183,9 +177,8 @@ Usage: isabelle dof_mkroot [OPTIONS] [DIRECTORY]
if (help) getopts.usage() if (help) getopts.usage()
mkroot(session_parent = session_parent, session_name = session_name, session_dir = session_dir, mkroot(session_name = session_name, session_dir = session_dir,
init_repos = init_repos, progress = new Console_Progress, init_repos = init_repos, progress = new Console_Progress,
ontologies = if (ontologies.isEmpty) default_ontologies else ontologies, ontologies = ontologies, template = template)
template = template)
}) })
} }