src/Pure/Tools/server_commands.scala
changeset 69458 5655af3ea5bd
parent 69013 bb4e4c253ebe
child 69520 16779868de1f
equal deleted inserted replaced
69457:bea49e443909 69458:5655af3ea5bd
    11 {
    11 {
    12   def default_preferences: String = Options.read_prefs()
    12   def default_preferences: String = Options.read_prefs()
    13 
    13 
    14   object Cancel
    14   object Cancel
    15   {
    15   {
    16     sealed case class Args(task: UUID)
    16     sealed case class Args(task: UUID.T)
    17 
    17 
    18     def unapply(json: JSON.T): Option[Args] =
    18     def unapply(json: JSON.T): Option[Args] =
    19       for { task <- JSON.uuid(json, "task") }
    19       for { task <- JSON.uuid(json, "task") }
    20       yield Args(task)
    20       yield Args(task)
    21   }
    21   }
   105         print_mode <- JSON.strings_default(json, "print_mode")
   105         print_mode <- JSON.strings_default(json, "print_mode")
   106       }
   106       }
   107       yield Args(build = build, print_mode = print_mode)
   107       yield Args(build = build, print_mode = print_mode)
   108 
   108 
   109     def command(args: Args, progress: Progress = No_Progress, log: Logger = No_Logger)
   109     def command(args: Args, progress: Progress = No_Progress, log: Logger = No_Logger)
   110       : (JSON.Object.T, (UUID, Headless.Session)) =
   110       : (JSON.Object.T, (UUID.T, Headless.Session)) =
   111     {
   111     {
   112       val base_info =
   112       val base_info =
   113         try { Session_Build.command(args.build, progress = progress)._3 }
   113         try { Session_Build.command(args.build, progress = progress)._3 }
   114         catch { case exn: Server.Error => error(exn.message) }
   114         catch { case exn: Server.Error => error(exn.message) }
   115 
   115 
   121           session_base = Some(base_info.check_base),
   121           session_base = Some(base_info.check_base),
   122           print_mode = args.print_mode,
   122           print_mode = args.print_mode,
   123           progress = progress,
   123           progress = progress,
   124           log = log)
   124           log = log)
   125 
   125 
   126       val id = UUID()
   126       val id = UUID.random()
   127 
   127 
   128       val res =
   128       val res =
   129         JSON.Object(
   129         JSON.Object(
   130           "session_id" -> id.toString,
   130           "session_id" -> id.toString,
   131           "tmp_dir" -> File.path(session.tmp_dir).implode)
   131           "tmp_dir" -> File.path(session.tmp_dir).implode)
   134     }
   134     }
   135   }
   135   }
   136 
   136 
   137   object Session_Stop
   137   object Session_Stop
   138   {
   138   {
   139     def unapply(json: JSON.T): Option[UUID] =
   139     def unapply(json: JSON.T): Option[UUID.T] =
   140       JSON.uuid(json, "session_id")
   140       JSON.uuid(json, "session_id")
   141 
   141 
   142     def command(session: Headless.Session): (JSON.Object.T, Process_Result) =
   142     def command(session: Headless.Session): (JSON.Object.T, Process_Result) =
   143     {
   143     {
   144       val result = session.stop()
   144       val result = session.stop()
   150   }
   150   }
   151 
   151 
   152   object Use_Theories
   152   object Use_Theories
   153   {
   153   {
   154     sealed case class Args(
   154     sealed case class Args(
   155       session_id: UUID,
   155       session_id: UUID.T,
   156       theories: List[String],
   156       theories: List[String],
   157       master_dir: String = "",
   157       master_dir: String = "",
   158       pretty_margin: Double = Pretty.default_margin,
   158       pretty_margin: Double = Pretty.default_margin,
   159       unicode_symbols: Boolean = false,
   159       unicode_symbols: Boolean = false,
   160       export_pattern: String = "",
   160       export_pattern: String = "",
   185           nodes_status_delay = nodes_status_delay)
   185           nodes_status_delay = nodes_status_delay)
   186       }
   186       }
   187 
   187 
   188     def command(args: Args,
   188     def command(args: Args,
   189       session: Headless.Session,
   189       session: Headless.Session,
   190       id: UUID = UUID(),
   190       id: UUID.T = UUID.random(),
   191       progress: Progress = No_Progress): (JSON.Object.T, Headless.Use_Theories_Result) =
   191       progress: Progress = No_Progress): (JSON.Object.T, Headless.Use_Theories_Result) =
   192     {
   192     {
   193       val result =
   193       val result =
   194         session.use_theories(args.theories, master_dir = args.master_dir,
   194         session.use_theories(args.theories, master_dir = args.master_dir,
   195           check_delay = args.check_delay, check_limit = args.check_limit,
   195           check_delay = args.check_delay, check_limit = args.check_limit,
   247   }
   247   }
   248 
   248 
   249   object Purge_Theories
   249   object Purge_Theories
   250   {
   250   {
   251     sealed case class Args(
   251     sealed case class Args(
   252       session_id: UUID,
   252       session_id: UUID.T,
   253       theories: List[String] = Nil,
   253       theories: List[String] = Nil,
   254       master_dir: String = "",
   254       master_dir: String = "",
   255       all: Boolean = false)
   255       all: Boolean = false)
   256 
   256 
   257     def unapply(json: JSON.T): Option[Args] =
   257     def unapply(json: JSON.T): Option[Args] =