src/Pure/Admin/build_release.scala
changeset 69400 c19b7b565998
parent 69397 df7d7477284b
child 69401 7a1b7b737c02
equal deleted inserted replaced
69399:9e488aeb9870 69400:c19b7b565998
   272 
   272 
   273 
   273 
   274     /* make distribution */
   274     /* make distribution */
   275 
   275 
   276     if (release.isabelle_archive.is_file) {
   276     if (release.isabelle_archive.is_file) {
   277       progress.echo("### Release archive already exists: " + release.isabelle_archive)
   277       progress.echo_warning("Release archive already exists: " + release.isabelle_archive)
   278 
   278 
   279       val archive_ident =
   279       val archive_ident =
   280         Isabelle_System.with_tmp_dir("build_release")(tmp_dir =>
   280         Isabelle_System.with_tmp_dir("build_release")(tmp_dir =>
   281           {
   281           {
   282             val getsettings = Path.explode(release.dist_name + "/" + getsettings_file)
   282             val getsettings = Path.explode(release.dist_name + "/" + getsettings_file)
   291         error("Mismatch of release identification " + release.ident +
   291         error("Mismatch of release identification " + release.ident +
   292           " vs. archive " + archive_ident)
   292           " vs. archive " + archive_ident)
   293       }
   293       }
   294     }
   294     }
   295     else {
   295     else {
   296       progress.echo("### Producing release archive " + release.isabelle_archive + " ...")
   296       progress.echo_warning("Producing release archive " + release.isabelle_archive + " ...")
   297 
   297 
   298       Isabelle_System.mkdirs(release.dist_dir)
   298       Isabelle_System.mkdirs(release.dist_dir)
   299 
   299 
   300       if (release.isabelle_dir.is_dir)
   300       if (release.isabelle_dir.is_dir)
   301         error("Directory " + release.isabelle_dir + " already exists")
   301         error("Directory " + release.isabelle_dir + " already exists")
   302 
   302 
   303 
   303 
   304       progress.echo("### Retrieving Mercurial repository version " + release.ident)
   304       progress.echo_warning("Retrieving Mercurial repository version " + release.ident)
   305 
   305 
   306       hg.archive(release.isabelle_dir.expand.implode, rev = release.ident, options = "--type files")
   306       hg.archive(release.isabelle_dir.expand.implode, rev = release.ident, options = "--type files")
   307 
   307 
   308       for (name <- List(".hg_archival.txt", ".hgtags", ".hgignore", "README_REPOSITORY")) {
   308       for (name <- List(".hg_archival.txt", ".hgtags", ".hgignore", "README_REPOSITORY")) {
   309         (release.isabelle_dir + Path.explode(name)).file.delete
   309         (release.isabelle_dir + Path.explode(name)).file.delete
   310       }
   310       }
   311 
   311 
   312 
   312 
   313       progress.echo("### Preparing distribution " + quote(release.dist_name))
   313       progress.echo_warning("Preparing distribution " + quote(release.dist_name))
   314 
   314 
   315       patch_release(release, proper_release_name.isDefined && official_release)
   315       patch_release(release, proper_release_name.isDefined && official_release)
   316 
   316 
   317       if (proper_release_name.isEmpty) make_announce(release)
   317       if (proper_release_name.isEmpty) make_announce(release)
   318 
   318 
   353       }
   353       }
   354 
   354 
   355       other_isabelle.cleanup()
   355       other_isabelle.cleanup()
   356 
   356 
   357 
   357 
   358       progress.echo("### Creating distribution archive " + release.isabelle_archive)
   358       progress.echo_warning("Creating distribution archive " + release.isabelle_archive)
   359 
   359 
   360       def execute_dist_name(script: String): Unit =
   360       def execute_dist_name(script: String): Unit =
   361         Isabelle_System.bash(script, cwd = release.dist_dir.file,
   361         Isabelle_System.bash(script, cwd = release.dist_dir.file,
   362           env = Isabelle_System.settings() + ("DIST_NAME" -> release.dist_name)).check
   362           env = Isabelle_System.settings() + ("DIST_NAME" -> release.dist_name)).check
   363 
   363 
   402     for (bundle_info <- bundle_infos) {
   402     for (bundle_info <- bundle_infos) {
   403       val bundle =
   403       val bundle =
   404         (if (remote_mac.isEmpty) bundle_info.fallback else None) getOrElse bundle_info.main
   404         (if (remote_mac.isEmpty) bundle_info.fallback else None) getOrElse bundle_info.main
   405       val bundle_archive = release.dist_dir + Path.explode(bundle)
   405       val bundle_archive = release.dist_dir + Path.explode(bundle)
   406       if (bundle_archive.is_file)
   406       if (bundle_archive.is_file)
   407         progress.echo("### Application bundle already exists: " + bundle_archive)
   407         progress.echo_warning("Application bundle already exists: " + bundle_archive)
   408       else {
   408       else {
   409         progress.echo(
   409         progress.echo(
   410           "\nApplication bundle for " + bundle_info.platform_family + ": " + bundle_archive)
   410           "\nApplication bundle for " + bundle_info.platform_family + ": " + bundle_archive)
   411         progress.bash(
   411         progress.bash(
   412           "isabelle makedist_bundle " + File.bash_path(release.isabelle_archive) +
   412           "isabelle makedist_bundle " + File.bash_path(release.isabelle_archive) +
   445 
   445 
   446     /* HTML library */
   446     /* HTML library */
   447 
   447 
   448     if (build_library) {
   448     if (build_library) {
   449       if (release.isabelle_library_archive.is_file) {
   449       if (release.isabelle_library_archive.is_file) {
   450         progress.echo("### Library archive already exists: " + release.isabelle_library_archive)
   450         progress.echo_warning("Library archive already exists: " + release.isabelle_library_archive)
   451       }
   451       }
   452       else {
   452       else {
   453         Isabelle_System.with_tmp_dir("build_release")(tmp_dir =>
   453         Isabelle_System.with_tmp_dir("build_release")(tmp_dir =>
   454           {
   454           {
   455             val name = release.dist_name
   455             val name = release.dist_name