diff -r 490b7c517000 -r fb8a7962f2ae src/Pure/Admin/isabelle_devel.scala --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Pure/Admin/isabelle_devel.scala Mon May 08 12:04:58 2017 +0200 @@ -0,0 +1,68 @@ +/* Title: Pure/Admin/isabelle_devel.scala + Author: Makarius + +Website for Isabelle development resources. +*/ + +package isabelle + + +object Isabelle_Devel +{ + val root_dir = Path.explode("~/html-data/devel") + + val release_snapshot_dir = root_dir + Path.explode("release_snapshot") + val build_log_db = root_dir + Path.explode("build_log.db") + val build_status_dir = root_dir + Path.explode("build_status") + + val log_dirs = + List(Path.explode("~/log"), Path.explode("~/afp/log"), Path.explode("~/cronjob/log")) + + + /* release snapshot */ + + def release_snapshot( + rev: String = "", + afp_rev: String = "", + parallel_jobs: Int = 1, + remote_mac: String = "") + { + Isabelle_System.with_tmp_dir("isadist")(base_dir => + { + val new_snapshot = release_snapshot_dir.ext("new") + val old_snapshot = release_snapshot_dir.ext("old") + + Isabelle_System.rm_tree(new_snapshot) + Isabelle_System.rm_tree(old_snapshot) + + Build_Release.build_release(base_dir, rev = rev, afp_rev = afp_rev, + parallel_jobs = parallel_jobs, remote_mac = remote_mac, website = Some(new_snapshot)) + + if (release_snapshot_dir.is_dir) File.move(release_snapshot_dir, old_snapshot) + File.move(new_snapshot, release_snapshot_dir) + Isabelle_System.rm_tree(old_snapshot) + }) + } + + + /* maintain build_log database */ + + def build_log_database(options: Options) + { + val store = Build_Log.store(options) + using(store.open_database())(db => + { + store.update_database(db, log_dirs, ml_statistics = true) + store.snapshot_database(db, build_log_db) + }) + } + + + /* present build status */ + + def build_status(options: Options) + { + val data = Build_Status.read_data(options) + Build_Status.present_data(data, target_dir = build_status_dir) + } +}