src/Pure/Admin/isabelle_cronjob.scala
changeset 78872 711acefe97a3
parent 78871 3b21101c5b6b
child 78873 0c7419d3dd59
--- a/src/Pure/Admin/isabelle_cronjob.scala	Tue Oct 31 17:24:19 2023 +0100
+++ b/src/Pure/Admin/isabelle_cronjob.scala	Tue Oct 31 17:32:56 2023 +0100
@@ -30,6 +30,8 @@
   val build_log_dirs =
     List(Path.explode("~/log"), Path.explode("~/afp/log"), Path.explode("~/cronjob/log"))
 
+  val isabelle_devel: Path = Path.explode("~/html-data/devel")
+
 
 
   /** logger tasks **/
@@ -45,7 +47,13 @@
   val init: Logger_Task =
     Logger_Task("init",
       { logger =>
-        Isabelle_Devel.make_index()
+        val redirect = "https://isabelle-dev.sketis.net/home/menu/view/20"
+
+        HTML.write_document(isabelle_devel, "index.html",
+          List(
+            XML.Elem(Markup("meta",
+              List("http-equiv" -> "Refresh", "content" -> ("0; url=" + redirect))), Nil)),
+          List(HTML.link(redirect, HTML.text("Isabelle Development Resources"))))
 
         Mercurial.setup_repository(Isabelle_System.afp_repository.root, afp_repos)
 
@@ -57,7 +65,7 @@
             """ -a --include="*/" --include="plain_identify*" --exclude="*" """ +
             Bash.string(backup + "/log/.") + " " + File.bash_path(main_dir) + "/log/.").check
 
-        val cronjob_log = Isabelle_Devel.isabelle_devel + Path.basic("cronjob-main.log")
+        val cronjob_log = isabelle_devel + Path.basic("cronjob-main.log")
         if (!cronjob_log.is_file) {
           Files.createSymbolicLink(cronjob_log.java_path, current_log.java_path)
         }
@@ -88,8 +96,21 @@
   val build_release: Logger_Task =
     Logger_Task("build_release", { logger =>
       build_release_log.file.delete
-      Isabelle_Devel.release_snapshot(logger.options, get_rev(), get_afp_rev(),
-        progress = new File_Progress(build_release_log))
+      val rev = get_rev()
+      val afp_rev = get_afp_rev()
+      val progress = new File_Progress(build_release_log)
+
+      Isabelle_System.with_tmp_dir("isadist") { target_dir =>
+        Isabelle_System.update_directory(isabelle_devel + Path.explode("release_snapshot"),
+          { website_dir =>
+            val context = Build_Release.Release_Context(target_dir, progress = progress)
+            Build_Release.build_release_archive(context, rev)
+            Build_Release.build_release(logger.options, context, afp_rev = afp_rev,
+              build_sessions = List(Isabelle_System.getenv("ISABELLE_LOGIC")),
+              website = Some(website_dir))
+          }
+        )
+      }
     })
 
 
@@ -618,7 +639,7 @@
                   logger =>
                     Build_Log.build_log_database(logger.options, build_log_dirs,
                       vacuum = true, ml_statistics = true,
-                      snapshot = Some(Isabelle_Devel.isabelle_devel + Path.explode("build_log.db")))))),
+                      snapshot = Some(isabelle_devel + Path.explode("build_log.db")))))),
             PAR(
               List(remote_builds1, remote_builds2).map(remote_builds =>
                 SEQUENTIAL(
@@ -631,8 +652,12 @@
                           .map({ case (rev, afp_rev) => remote_build_history(rev, afp_rev, i, r) })
                       }
                     ))),
-                  Logger_Task("build_status",
-                    logger => Isabelle_Devel.build_status(logger.options))))),
+                  Logger_Task("build_status", logger =>
+                    Isabelle_System.update_directory(
+                      isabelle_devel + Path.explode("build_status"),
+                      dir =>
+                        Build_Status.build_status(logger.options,
+                          target_dir = dir, ml_statistics = true)))))),
             exit))))
 
     log_service.shutdown()