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) + |