37 import java.io.UncheckedIOException; |
37 import java.io.UncheckedIOException; |
38 import java.io.Writer; |
38 import java.io.Writer; |
39 import java.math.BigInteger; |
39 import java.math.BigInteger; |
40 import java.nio.file.Files; |
40 import java.nio.file.Files; |
41 import java.nio.file.Path; |
41 import java.nio.file.Path; |
|
42 import java.nio.file.StandardCopyOption; |
42 import java.nio.file.attribute.PosixFilePermission; |
43 import java.nio.file.attribute.PosixFilePermission; |
43 import java.text.MessageFormat; |
44 import java.text.MessageFormat; |
44 import java.util.ArrayList; |
45 import java.util.ArrayList; |
45 import java.util.Arrays; |
46 import java.util.Arrays; |
46 import java.util.EnumSet; |
47 import java.util.EnumSet; |
137 return "100"; |
138 return "100"; |
138 } |
139 } |
139 }, |
140 }, |
140 (s, p) -> s); |
141 (s, p) -> s); |
141 |
142 |
142 public static final BundlerParamInfo<File> CONFIG_ROOT = |
|
143 new StandardBundlerParam<>( |
|
144 I18N.getString("param.config-root.name"), |
|
145 I18N.getString("param.config-root.description"), |
|
146 "configRoot", |
|
147 File.class, |
|
148 params -> { |
|
149 File configRoot = |
|
150 new File(BUILD_ROOT.fetchFrom(params), "macosx"); |
|
151 configRoot.mkdirs(); |
|
152 return configRoot; |
|
153 }, |
|
154 (s, p) -> new File(s)); |
|
155 |
|
156 public static final BundlerParamInfo<String> DEFAULT_ICNS_ICON = |
143 public static final BundlerParamInfo<String> DEFAULT_ICNS_ICON = |
157 new StandardBundlerParam<>( |
144 new StandardBundlerParam<>( |
158 I18N.getString("param.default-icon-icns"), |
145 I18N.getString("param.default-icon-icns"), |
159 I18N.getString("param.default-icon-icns.description"), |
146 I18N.getString("param.default-icon-icns.description"), |
160 ".mac.default.icns", |
147 ".mac.default.icns", |
369 // Copy class path entries to Java folder |
356 // Copy class path entries to Java folder |
370 copyClassPathEntries(javaDir); |
357 copyClassPathEntries(javaDir); |
371 |
358 |
372 /*********** Take care of "config" files *******/ |
359 /*********** Take care of "config" files *******/ |
373 File icon = ICON_ICNS.fetchFrom(params); |
360 File icon = ICON_ICNS.fetchFrom(params); |
|
361 |
374 InputStream in = locateResource( |
362 InputStream in = locateResource( |
375 APP_NAME.fetchFrom(params) + ".icns", |
363 APP_NAME.fetchFrom(params) + ".icns", |
376 "icon", |
364 "icon", |
377 DEFAULT_ICNS_ICON.fetchFrom(params), |
365 DEFAULT_ICNS_ICON.fetchFrom(params), |
378 icon, |
366 icon, |
379 VERBOSE.fetchFrom(params), |
367 VERBOSE.fetchFrom(params), |
380 RESOURCE_DIR.fetchFrom(params)); |
368 RESOURCE_DIR.fetchFrom(params)); |
381 Files.copy(in, |
369 Files.copy(in, |
382 resourcesDir.resolve(APP_NAME.fetchFrom(params) + ".icns")); |
370 resourcesDir.resolve(APP_NAME.fetchFrom(params) + ".icns"), |
|
371 StandardCopyOption.REPLACE_EXISTING); |
383 |
372 |
384 // copy file association icons |
373 // copy file association icons |
385 for (Map<String, ? |
374 for (Map<String, ? |
386 super Object> fa : FILE_ASSOCIATIONS.fetchFrom(params)) { |
375 super Object> fa : FILE_ASSOCIATIONS.fetchFrom(params)) { |
387 File f = FA_ICON.fetchFrom(fa); |
376 File f = FA_ICON.fetchFrom(fa); |