src/Pure/Tools/imports.scala
changeset 66737 2edc0c42c883
parent 66720 b07192253605
child 66767 294c2e9a689e
equal deleted inserted replaced
66736:148891036469 66737:2edc0c42c883
   213   /* Isabelle tool wrapper */
   213   /* Isabelle tool wrapper */
   214 
   214 
   215   val isabelle_tool =
   215   val isabelle_tool =
   216     Isabelle_Tool("imports", "maintain theory imports wrt. session structure", args =>
   216     Isabelle_Tool("imports", "maintain theory imports wrt. session structure", args =>
   217     {
   217     {
       
   218       var base_sessions: List[String] = Nil
   218       var select_dirs: List[Path] = Nil
   219       var select_dirs: List[Path] = Nil
   219       var operation_imports = false
   220       var operation_imports = false
   220       var operation_repository_files = false
   221       var operation_repository_files = false
   221       var requirements = false
   222       var requirements = false
   222       var operation_update = false
   223       var operation_update = false
   231 
   232 
   232       val getopts = Getopts("""
   233       val getopts = Getopts("""
   233 Usage: isabelle imports [OPTIONS] [SESSIONS ...]
   234 Usage: isabelle imports [OPTIONS] [SESSIONS ...]
   234 
   235 
   235   Options are:
   236   Options are:
       
   237     -B NAME      include session NAME and all descendants
   236     -D DIR       include session directory and select its sessions
   238     -D DIR       include session directory and select its sessions
   237     -I           operation: report potential session imports
   239     -I           operation: report potential session imports
   238     -M           operation: Mercurial repository check for theory files
   240     -M           operation: Mercurial repository check for theory files
   239     -R           operate on requirements of selected sessions
   241     -R           operate on requirements of selected sessions
   240     -U           operation: update theory imports to use session qualifiers
   242     -U           operation: update theory imports to use session qualifiers
   248     -x NAME      exclude session NAME and all descendants
   250     -x NAME      exclude session NAME and all descendants
   249 
   251 
   250   Maintain theory imports wrt. session structure. At least one operation
   252   Maintain theory imports wrt. session structure. At least one operation
   251   needs to be specified (see options -I -M -U).
   253   needs to be specified (see options -I -M -U).
   252 """,
   254 """,
       
   255       "B:" -> (arg => base_sessions = base_sessions ::: List(arg)),
   253       "D:" -> (arg => select_dirs = select_dirs ::: List(Path.explode(arg))),
   256       "D:" -> (arg => select_dirs = select_dirs ::: List(Path.explode(arg))),
   254       "I" -> (_ => operation_imports = true),
   257       "I" -> (_ => operation_imports = true),
   255       "M" -> (_ => operation_repository_files = true),
   258       "M" -> (_ => operation_repository_files = true),
   256       "R" -> (_ => requirements = true),
   259       "R" -> (_ => requirements = true),
   257       "U" -> (_ => operation_update = true),
   260       "U" -> (_ => operation_update = true),
   267       val sessions = getopts(args)
   270       val sessions = getopts(args)
   268       if (args.isEmpty || !(operation_imports || operation_repository_files || operation_update))
   271       if (args.isEmpty || !(operation_imports || operation_repository_files || operation_update))
   269         getopts.usage()
   272         getopts.usage()
   270 
   273 
   271       val selection =
   274       val selection =
   272         Sessions.Selection(requirements, all_sessions, exclude_session_groups,
   275         Sessions.Selection(requirements, all_sessions, base_sessions, exclude_session_groups,
   273           exclude_sessions, session_groups, sessions)
   276           exclude_sessions, session_groups, sessions)
   274 
   277 
   275       val progress = new Console_Progress(verbose = verbose)
   278       val progress = new Console_Progress(verbose = verbose)
   276 
   279 
   277       if (operation_imports || operation_repository_files ||
   280       if (operation_imports || operation_repository_files ||