255 File srcFolder = APP_IMAGE_TEMP_ROOT.fetchFrom(params);
256 File predefinedImage =
257 StandardBundlerParam.getPredefinedAppImage(params);
258 if (predefinedImage != null) {
259 srcFolder = predefinedImage;
260 }
261
262 Log.verbose(MessageFormat.format(I18N.getString(
263 "message.creating-dmg-file"), finalDMG.getAbsolutePath()));
264
265 protoDMG.delete();
266 if (finalDMG.exists() && !finalDMG.delete()) {
267 throw new IOException(MessageFormat.format(I18N.getString(
268 "message.dmg-cannot-be-overwritten"),
269 finalDMG.getAbsolutePath()));
270 }
271
272 protoDMG.getParentFile().mkdirs();
273 finalDMG.getParentFile().mkdirs();
274
275 String hdiUtilVerbosityFlag = Log.isDebug() ? "-verbose" : "-quiet";
276
277 // create temp image
278 ProcessBuilder pb = new ProcessBuilder(
279 hdiutil,
280 "create",
281 hdiUtilVerbosityFlag,
282 "-srcfolder", srcFolder.getAbsolutePath(),
283 "-volname", APP_NAME.fetchFrom(params),
284 "-ov", protoDMG.getAbsolutePath(),
285 "-fs", "HFS+",
286 "-format", "UDRW");
287 IOUtils.exec(pb);
288
289 // mount temp image
290 pb = new ProcessBuilder(
291 hdiutil,
292 "attach",
293 protoDMG.getAbsolutePath(),
294 hdiUtilVerbosityFlag,
295 "-mountroot", imagesRoot.getAbsolutePath());
|
255 File srcFolder = APP_IMAGE_TEMP_ROOT.fetchFrom(params);
256 File predefinedImage =
257 StandardBundlerParam.getPredefinedAppImage(params);
258 if (predefinedImage != null) {
259 srcFolder = predefinedImage;
260 }
261
262 Log.verbose(MessageFormat.format(I18N.getString(
263 "message.creating-dmg-file"), finalDMG.getAbsolutePath()));
264
265 protoDMG.delete();
266 if (finalDMG.exists() && !finalDMG.delete()) {
267 throw new IOException(MessageFormat.format(I18N.getString(
268 "message.dmg-cannot-be-overwritten"),
269 finalDMG.getAbsolutePath()));
270 }
271
272 protoDMG.getParentFile().mkdirs();
273 finalDMG.getParentFile().mkdirs();
274
275 String hdiUtilVerbosityFlag = VERBOSE.fetchFrom(params) ?
276 "-verbose" : "-quiet";
277
278 // create temp image
279 ProcessBuilder pb = new ProcessBuilder(
280 hdiutil,
281 "create",
282 hdiUtilVerbosityFlag,
283 "-srcfolder", srcFolder.getAbsolutePath(),
284 "-volname", APP_NAME.fetchFrom(params),
285 "-ov", protoDMG.getAbsolutePath(),
286 "-fs", "HFS+",
287 "-format", "UDRW");
288 IOUtils.exec(pb);
289
290 // mount temp image
291 pb = new ProcessBuilder(
292 hdiutil,
293 "attach",
294 protoDMG.getAbsolutePath(),
295 hdiUtilVerbosityFlag,
296 "-mountroot", imagesRoot.getAbsolutePath());
|