src/Pure/Admin/isabelle_devel.scala
changeset 75393 87ebf5a50283
parent 74857 25e9e7088561
child 75394 42267c650205
equal deleted inserted replaced
75388:b3ca4a6ed74b 75393:87ebf5a50283
     5 */
     5 */
     6 
     6 
     7 package isabelle
     7 package isabelle
     8 
     8 
     9 
     9 
    10 object Isabelle_Devel
    10 object Isabelle_Devel {
    11 {
       
    12   val RELEASE_SNAPSHOT = "release_snapshot"
    11   val RELEASE_SNAPSHOT = "release_snapshot"
    13   val BUILD_LOG_DB = "build_log.db"
    12   val BUILD_LOG_DB = "build_log.db"
    14   val BUILD_STATUS = "build_status"
    13   val BUILD_STATUS = "build_status"
    15   val CRONJOB_LOG = "cronjob-main.log"
    14   val CRONJOB_LOG = "cronjob-main.log"
    16 
    15 
    18   val cronjob_log: Path = root + Path.basic(CRONJOB_LOG)
    17   val cronjob_log: Path = root + Path.basic(CRONJOB_LOG)
    19 
    18 
    20 
    19 
    21   /* index */
    20   /* index */
    22 
    21 
    23   def make_index(): Unit =
    22   def make_index(): Unit = {
    24   {
       
    25     val redirect = "https://isabelle-dev.sketis.net/home/menu/view/20"
    23     val redirect = "https://isabelle-dev.sketis.net/home/menu/view/20"
    26 
    24 
    27     HTML.write_document(root, "index.html",
    25     HTML.write_document(root, "index.html",
    28       List(
    26       List(
    29         XML.Elem(Markup("meta",
    27         XML.Elem(Markup("meta",
    32   }
    30   }
    33 
    31 
    34 
    32 
    35   /* release snapshot */
    33   /* release snapshot */
    36 
    34 
    37   def release_snapshot(options: Options, rev: String, afp_rev: String): Unit =
    35   def release_snapshot(options: Options, rev: String, afp_rev: String): Unit = {
    38   {
    36     Isabelle_System.with_tmp_dir("isadist")(target_dir => {
    39     Isabelle_System.with_tmp_dir("isadist")(target_dir =>
       
    40       {
       
    41         Isabelle_System.update_directory(root + Path.explode(RELEASE_SNAPSHOT),
    37         Isabelle_System.update_directory(root + Path.explode(RELEASE_SNAPSHOT),
    42           website_dir =>
    38           website_dir => {
    43         {
       
    44           val context = Build_Release.Release_Context(target_dir)
    39           val context = Build_Release.Release_Context(target_dir)
    45           Build_Release.build_release_archive(context, rev)
    40           Build_Release.build_release_archive(context, rev)
    46           Build_Release.build_release(options, context, afp_rev = afp_rev,
    41           Build_Release.build_release(options, context, afp_rev = afp_rev,
    47             build_sessions = List(Isabelle_System.getenv("ISABELLE_LOGIC")),
    42             build_sessions = List(Isabelle_System.getenv("ISABELLE_LOGIC")),
    48             website = Some(website_dir))
    43             website = Some(website_dir))
    51   }
    46   }
    52 
    47 
    53 
    48 
    54   /* maintain build_log database */
    49   /* maintain build_log database */
    55 
    50 
    56   def build_log_database(options: Options, log_dirs: List[Path]): Unit =
    51   def build_log_database(options: Options, log_dirs: List[Path]): Unit = {
    57   {
       
    58     val store = Build_Log.store(options)
    52     val store = Build_Log.store(options)
    59     using(store.open_database())(db =>
    53     using(store.open_database())(db => {
    60     {
       
    61       store.update_database(db, log_dirs)
    54       store.update_database(db, log_dirs)
    62       store.update_database(db, log_dirs, ml_statistics = true)
    55       store.update_database(db, log_dirs, ml_statistics = true)
    63       store.snapshot_database(db, root + Path.explode(BUILD_LOG_DB))
    56       store.snapshot_database(db, root + Path.explode(BUILD_LOG_DB))
    64     })
    57     })
    65   }
    58   }
    66 
    59 
    67 
    60 
    68   /* present build status */
    61   /* present build status */
    69 
    62 
    70   def build_status(options: Options): Unit =
    63   def build_status(options: Options): Unit = {
    71   {
       
    72     Isabelle_System.update_directory(root + Path.explode(BUILD_STATUS),
    64     Isabelle_System.update_directory(root + Path.explode(BUILD_STATUS),
    73       dir => Build_Status.build_status(options, target_dir = dir, ml_statistics = true))
    65       dir => Build_Status.build_status(options, target_dir = dir, ml_statistics = true))
    74   }
    66   }
    75 }
    67 }