src/Pure/Tools/server_commands.scala
changeset 67941 49a34b2fa788
parent 67940 b4e80f062fbf
child 67943 b45f0c0ea14f
equal deleted inserted replaced
67940:b4e80f062fbf 67941:49a34b2fa788
   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 }