src/Pure/Tools/server_commands.scala
changeset 69012 c91d14ab065f
parent 68947 ea804c814693
child 69013 bb4e4c253ebe
equal deleted inserted replaced
69011:8745ca1e7e93 69012:c91d14ab065f
   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, Thy_Resources.Session)) =
   110       : (JSON.Object.T, (UUID, 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 
   116       val session =
   116       val session =
   117         Thy_Resources.start_session(
   117         Headless.start_session(
   118           base_info.options,
   118           base_info.options,
   119           base_info.session,
   119           base_info.session,
   120           session_dirs = base_info.dirs,
   120           session_dirs = base_info.dirs,
   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,
   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] =
   140       JSON.uuid(json, "session_id")
   140       JSON.uuid(json, "session_id")
   141 
   141 
   142     def command(session: Thy_Resources.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()
   145       val result_json = JSON.Object("ok" -> result.ok, "return_code" -> result.rc)
   145       val result_json = JSON.Object("ok" -> result.ok, "return_code" -> result.rc)
   146 
   146 
   147       if (result.ok) (result_json, result)
   147       if (result.ok) (result_json, result)
   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 = "",
   161       check_delay: Time = Thy_Resources.default_check_delay,
   161       check_delay: Time = Headless.default_check_delay,
   162       check_limit: Int = 0,
   162       check_limit: Int = 0,
   163       watchdog_timeout: Time = Thy_Resources.default_watchdog_timeout,
   163       watchdog_timeout: Time = Headless.default_watchdog_timeout,
   164       nodes_status_delay: Time = Thy_Resources.default_nodes_status_delay)
   164       nodes_status_delay: Time = Headless.default_nodes_status_delay)
   165 
   165 
   166     def unapply(json: JSON.T): Option[Args] =
   166     def unapply(json: JSON.T): Option[Args] =
   167       for {
   167       for {
   168         session_id <- JSON.uuid(json, "session_id")
   168         session_id <- JSON.uuid(json, "session_id")
   169         theories <- JSON.strings(json, "theories")
   169         theories <- JSON.strings(json, "theories")
   170         master_dir <- JSON.string_default(json, "master_dir")
   170         master_dir <- JSON.string_default(json, "master_dir")
   171         pretty_margin <- JSON.double_default(json, "pretty_margin", Pretty.default_margin)
   171         pretty_margin <- JSON.double_default(json, "pretty_margin", Pretty.default_margin)
   172         unicode_symbols <- JSON.bool_default(json, "unicode_symbols")
   172         unicode_symbols <- JSON.bool_default(json, "unicode_symbols")
   173         export_pattern <- JSON.string_default(json, "export_pattern")
   173         export_pattern <- JSON.string_default(json, "export_pattern")
   174         check_delay <- JSON.seconds_default(json, "check_delay", Thy_Resources.default_check_delay)
   174         check_delay <- JSON.seconds_default(json, "check_delay", Headless.default_check_delay)
   175         check_limit <- JSON.int_default(json, "check_limit")
   175         check_limit <- JSON.int_default(json, "check_limit")
   176         watchdog_timeout <-
   176         watchdog_timeout <-
   177           JSON.seconds_default(json, "watchdog_timeout", Thy_Resources.default_watchdog_timeout)
   177           JSON.seconds_default(json, "watchdog_timeout", Headless.default_watchdog_timeout)
   178         nodes_status_delay <-
   178         nodes_status_delay <-
   179           JSON.seconds_default(json, "nodes_status_delay", Thy_Resources.default_nodes_status_delay)
   179           JSON.seconds_default(json, "nodes_status_delay", Headless.default_nodes_status_delay)
   180       }
   180       }
   181       yield {
   181       yield {
   182         Args(session_id, theories, master_dir = master_dir, pretty_margin = pretty_margin,
   182         Args(session_id, theories, master_dir = master_dir, pretty_margin = pretty_margin,
   183           unicode_symbols = unicode_symbols, export_pattern = export_pattern,
   183           unicode_symbols = unicode_symbols, export_pattern = export_pattern,
   184           check_delay = check_delay, check_limit = check_limit, watchdog_timeout = watchdog_timeout,
   184           check_delay = check_delay, check_limit = check_limit, watchdog_timeout = watchdog_timeout,
   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: Thy_Resources.Session,
   189       session: Headless.Session,
   190       id: UUID = UUID(),
   190       id: UUID = UUID(),
   191       progress: Progress = No_Progress): (JSON.Object.T, Thy_Resources.Theories_Result) =
   191       progress: Progress = No_Progress): (JSON.Object.T, Headless.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,
   196           watchdog_timeout = args.watchdog_timeout,
   196           watchdog_timeout = args.watchdog_timeout,
   261         master_dir <- JSON.string_default(json, "master_dir")
   261         master_dir <- JSON.string_default(json, "master_dir")
   262         all <- JSON.bool_default(json, "all")
   262         all <- JSON.bool_default(json, "all")
   263       }
   263       }
   264       yield { Args(session_id, theories = theories, master_dir = master_dir, all = all) }
   264       yield { Args(session_id, theories = theories, master_dir = master_dir, all = all) }
   265 
   265 
   266     def command(args: Args, session: Thy_Resources.Session)
   266     def command(args: Args, session: Headless.Session)
   267       : (JSON.Object.T, (List[Document.Node.Name], List[Document.Node.Name])) =
   267       : (JSON.Object.T, (List[Document.Node.Name], List[Document.Node.Name])) =
   268     {
   268     {
   269       val (purged, retained) =
   269       val (purged, retained) =
   270         session.purge_theories(
   270         session.purge_theories(
   271           theories = args.theories, master_dir = args.master_dir, all = args.all)
   271           theories = args.theories, master_dir = args.master_dir, all = args.all)