equal
deleted
inserted
replaced
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 || |