166 return "INSTALLER";
167 }
168
169 @Override
170 public Collection<BundlerParamInfo<?>> getBundleParameters() {
171 Collection<BundlerParamInfo<?>> results = new LinkedHashSet<>();
172 results.addAll(WinAppBundler.getAppBundleParameters());
173 results.addAll(getExeBundleParameters());
174 return results;
175 }
176
177 public static Collection<BundlerParamInfo<?>> getExeBundleParameters() {
178 return Arrays.asList(
179 DESCRIPTION,
180 COPYRIGHT,
181 LICENSE_FILE,
182 MENU_GROUP,
183 MENU_HINT,
184 SHORTCUT_HINT,
185 EXE_SYSTEM_WIDE,
186 TITLE,
187 VENDOR,
188 INSTALLDIR_CHOOSER
189 );
190 }
191
192 @Override
193 public File execute(Map<String, ? super Object> p,
194 File outputParentDir) throws PackagerException {
195 return bundle(p, outputParentDir);
196 }
197
198 @Override
199 public boolean supported(boolean platformInstaller) {
200 return (Platform.getPlatform() == Platform.WINDOWS);
201 }
202
203 private static String findToolVersion(String toolName) {
204 try {
205 if (toolName == null || "".equals(toolName)) return null;
206
224 }
225
226 @Override
227 public boolean validate(Map<String, ? super Object> p)
228 throws UnsupportedPlatformException, ConfigException {
229 try {
230 if (p == null) throw new ConfigException(
231 getString("error.parameters-null"),
232 getString("error.parameters-null.advice"));
233
234 // run basic validation to ensure requirements are met
235 // we are not interested in return code, only possible exception
236 APP_BUNDLER.fetchFrom(p).validate(p);
237
238 // make sure some key values don't have newlines
239 for (BundlerParamInfo<String> pi : Arrays.asList(
240 APP_NAME,
241 COPYRIGHT,
242 DESCRIPTION,
243 MENU_GROUP,
244 TITLE,
245 VENDOR,
246 VERSION)
247 ) {
248 String v = pi.fetchFrom(p);
249 if (v.contains("\n") | v.contains("\r")) {
250 throw new ConfigException("Parmeter '" + pi.getID() +
251 "' cannot contain a newline.",
252 " Change the value of '" + pi.getID() +
253 " so that it does not contain any newlines");
254 }
255 }
256
257 // exe bundlers trim the copyright to 100 characters,
258 // tell them this will happen
259 if (COPYRIGHT.fetchFrom(p).length() > 100) {
260 throw new ConfigException(
261 getString("error.copyright-is-too-long"),
262 getString("error.copyright-is-too-long.advice"));
263 }
264
484 innosetupEscape(getAppIdentifier(p)));
485
486
487 validateValueAndPut(data, "INSTALLER_NAME", APP_NAME, p);
488 validateValueAndPut(data, "APPLICATION_VENDOR", VENDOR, p);
489 validateValueAndPut(data, "APPLICATION_VERSION", VERSION, p);
490 validateValueAndPut(data, "INSTALLER_FILE_NAME",
491 INSTALLER_FILE_NAME, p);
492
493 data.put("LAUNCHER_NAME",
494 innosetupEscape(WinAppBundler.getAppName(p)));
495
496 data.put("APPLICATION_LAUNCHER_FILENAME",
497 innosetupEscape(WinAppBundler.getLauncherName(p)));
498
499 data.put("APPLICATION_DESKTOP_SHORTCUT",
500 SHORTCUT_HINT.fetchFrom(p) ? "returnTrue" : "returnFalse");
501 data.put("APPLICATION_MENU_SHORTCUT",
502 MENU_HINT.fetchFrom(p) ? "returnTrue" : "returnFalse");
503 validateValueAndPut(data, "APPLICATION_GROUP", MENU_GROUP, p);
504 validateValueAndPut(data, "APPLICATION_COMMENTS", TITLE, p);
505 validateValueAndPut(data, "APPLICATION_COPYRIGHT", COPYRIGHT, p);
506
507 data.put("APPLICATION_LICENSE_FILE",
508 innosetupEscape(getLicenseFile(p)));
509 data.put("DISABLE_DIR_PAGE",
510 INSTALLDIR_CHOOSER.fetchFrom(p) ? "No" : "Yes");
511
512 Boolean isSystemWide = EXE_SYSTEM_WIDE.fetchFrom(p);
513
514 if (isSystemWide) {
515 data.put("APPLICATION_INSTALL_ROOT", "{pf}");
516 data.put("APPLICATION_INSTALL_PRIVILEGE", "admin");
517 } else {
518 data.put("APPLICATION_INSTALL_ROOT", "{localappdata}");
519 data.put("APPLICATION_INSTALL_PRIVILEGE", "lowest");
520 }
521
522 data.put("ARCHITECTURE_BIT_MODE", "x64");
523
524 validateValueAndPut(data, "RUN_FILENAME", APP_NAME, p);
|
166 return "INSTALLER";
167 }
168
169 @Override
170 public Collection<BundlerParamInfo<?>> getBundleParameters() {
171 Collection<BundlerParamInfo<?>> results = new LinkedHashSet<>();
172 results.addAll(WinAppBundler.getAppBundleParameters());
173 results.addAll(getExeBundleParameters());
174 return results;
175 }
176
177 public static Collection<BundlerParamInfo<?>> getExeBundleParameters() {
178 return Arrays.asList(
179 DESCRIPTION,
180 COPYRIGHT,
181 LICENSE_FILE,
182 MENU_GROUP,
183 MENU_HINT,
184 SHORTCUT_HINT,
185 EXE_SYSTEM_WIDE,
186 VENDOR,
187 INSTALLDIR_CHOOSER
188 );
189 }
190
191 @Override
192 public File execute(Map<String, ? super Object> p,
193 File outputParentDir) throws PackagerException {
194 return bundle(p, outputParentDir);
195 }
196
197 @Override
198 public boolean supported(boolean platformInstaller) {
199 return (Platform.getPlatform() == Platform.WINDOWS);
200 }
201
202 private static String findToolVersion(String toolName) {
203 try {
204 if (toolName == null || "".equals(toolName)) return null;
205
223 }
224
225 @Override
226 public boolean validate(Map<String, ? super Object> p)
227 throws UnsupportedPlatformException, ConfigException {
228 try {
229 if (p == null) throw new ConfigException(
230 getString("error.parameters-null"),
231 getString("error.parameters-null.advice"));
232
233 // run basic validation to ensure requirements are met
234 // we are not interested in return code, only possible exception
235 APP_BUNDLER.fetchFrom(p).validate(p);
236
237 // make sure some key values don't have newlines
238 for (BundlerParamInfo<String> pi : Arrays.asList(
239 APP_NAME,
240 COPYRIGHT,
241 DESCRIPTION,
242 MENU_GROUP,
243 VENDOR,
244 VERSION)
245 ) {
246 String v = pi.fetchFrom(p);
247 if (v.contains("\n") | v.contains("\r")) {
248 throw new ConfigException("Parmeter '" + pi.getID() +
249 "' cannot contain a newline.",
250 " Change the value of '" + pi.getID() +
251 " so that it does not contain any newlines");
252 }
253 }
254
255 // exe bundlers trim the copyright to 100 characters,
256 // tell them this will happen
257 if (COPYRIGHT.fetchFrom(p).length() > 100) {
258 throw new ConfigException(
259 getString("error.copyright-is-too-long"),
260 getString("error.copyright-is-too-long.advice"));
261 }
262
482 innosetupEscape(getAppIdentifier(p)));
483
484
485 validateValueAndPut(data, "INSTALLER_NAME", APP_NAME, p);
486 validateValueAndPut(data, "APPLICATION_VENDOR", VENDOR, p);
487 validateValueAndPut(data, "APPLICATION_VERSION", VERSION, p);
488 validateValueAndPut(data, "INSTALLER_FILE_NAME",
489 INSTALLER_FILE_NAME, p);
490
491 data.put("LAUNCHER_NAME",
492 innosetupEscape(WinAppBundler.getAppName(p)));
493
494 data.put("APPLICATION_LAUNCHER_FILENAME",
495 innosetupEscape(WinAppBundler.getLauncherName(p)));
496
497 data.put("APPLICATION_DESKTOP_SHORTCUT",
498 SHORTCUT_HINT.fetchFrom(p) ? "returnTrue" : "returnFalse");
499 data.put("APPLICATION_MENU_SHORTCUT",
500 MENU_HINT.fetchFrom(p) ? "returnTrue" : "returnFalse");
501 validateValueAndPut(data, "APPLICATION_GROUP", MENU_GROUP, p);
502 validateValueAndPut(data, "APPLICATION_COPYRIGHT", COPYRIGHT, p);
503
504 data.put("APPLICATION_LICENSE_FILE",
505 innosetupEscape(getLicenseFile(p)));
506 data.put("DISABLE_DIR_PAGE",
507 INSTALLDIR_CHOOSER.fetchFrom(p) ? "No" : "Yes");
508
509 Boolean isSystemWide = EXE_SYSTEM_WIDE.fetchFrom(p);
510
511 if (isSystemWide) {
512 data.put("APPLICATION_INSTALL_ROOT", "{pf}");
513 data.put("APPLICATION_INSTALL_PRIVILEGE", "admin");
514 } else {
515 data.put("APPLICATION_INSTALL_ROOT", "{localappdata}");
516 data.put("APPLICATION_INSTALL_PRIVILEGE", "lowest");
517 }
518
519 data.put("ARCHITECTURE_BIT_MODE", "x64");
520
521 validateValueAndPut(data, "RUN_FILENAME", APP_NAME, p);
|