src/Pure/Tools/imports.scala
changeset 66737 2edc0c42c883
parent 66720 b07192253605
child 66767 294c2e9a689e
--- a/src/Pure/Tools/imports.scala	Sun Oct 01 12:28:52 2017 +0200
+++ b/src/Pure/Tools/imports.scala	Sun Oct 01 13:07:31 2017 +0200
@@ -215,6 +215,7 @@
   val isabelle_tool =
     Isabelle_Tool("imports", "maintain theory imports wrt. session structure", args =>
     {
+      var base_sessions: List[String] = Nil
       var select_dirs: List[Path] = Nil
       var operation_imports = false
       var operation_repository_files = false
@@ -233,6 +234,7 @@
 Usage: isabelle imports [OPTIONS] [SESSIONS ...]
 
   Options are:
+    -B NAME      include session NAME and all descendants
     -D DIR       include session directory and select its sessions
     -I           operation: report potential session imports
     -M           operation: Mercurial repository check for theory files
@@ -250,6 +252,7 @@
   Maintain theory imports wrt. session structure. At least one operation
   needs to be specified (see options -I -M -U).
 """,
+      "B:" -> (arg => base_sessions = base_sessions ::: List(arg)),
       "D:" -> (arg => select_dirs = select_dirs ::: List(Path.explode(arg))),
       "I" -> (_ => operation_imports = true),
       "M" -> (_ => operation_repository_files = true),
@@ -269,7 +272,7 @@
         getopts.usage()
 
       val selection =
-        Sessions.Selection(requirements, all_sessions, exclude_session_groups,
+        Sessions.Selection(requirements, all_sessions, base_sessions, exclude_session_groups,
           exclude_sessions, session_groups, sessions)
 
       val progress = new Console_Progress(verbose = verbose)