217 yield output_message(tree, pos))))) |
217 yield output_message(tree, pos))))) |
218 |
218 |
219 (result_json, result) |
219 (result_json, result) |
220 } |
220 } |
221 } |
221 } |
|
222 |
|
223 object Purge_Theories |
|
224 { |
|
225 sealed case class Args( |
|
226 session_id: UUID, |
|
227 theories: List[String] = Nil, |
|
228 master_dir: String = "", |
|
229 all: Boolean = false) |
|
230 |
|
231 def unapply(json: JSON.T): Option[Args] = |
|
232 for { |
|
233 session_id <- JSON.uuid(json, "session_id") |
|
234 theories <- JSON.list_default(json, "theories", JSON.Value.String.unapply _) |
|
235 master_dir <- JSON.string_default(json, "master_dir") |
|
236 all <- JSON.bool_default(json, "all") |
|
237 } |
|
238 yield { Args(session_id, theories = theories, master_dir = master_dir, all = all) } |
|
239 |
|
240 def command(args: Args, session: Thy_Resources.Session) |
|
241 : (JSON.Object.T, List[Document.Node.Name]) = |
|
242 { |
|
243 val purged = |
|
244 session.purge_theories( |
|
245 theories = args.theories, master_dir = args.master_dir, all = args.all) |
|
246 (JSON.Object("purged" -> purged.map(_.node)), purged) |
|
247 } |
|
248 } |
222 } |
249 } |