176 }
177 }
178 return "Unknown";
179 },
180 (s, p) -> s);
181
182 public static final BundlerParamInfo<String> XDG_FILE_PREFIX =
183 new StandardBundlerParam<> (
184 I18N.getString("param.xdg-prefix.name"),
185 I18N.getString("param.xdg-prefix.description"),
186 "linux.xdg-prefix",
187 String.class,
188 params -> {
189 try {
190 String vendor;
191 if (params.containsKey(VENDOR.getID())) {
192 vendor = VENDOR.fetchFrom(params);
193 } else {
194 vendor = "jpackage";
195 }
196 String appName = APP_FS_NAME.fetchFrom(params);
197
198 return (appName + "-" + vendor).replaceAll("\\s", "");
199 } catch (Exception e) {
200 if (Log.isDebug()) {
201 e.printStackTrace();
202 }
203 }
204 return "unknown-MimeInfo.xml";
205 },
206 (s, p) -> s);
207
208 private final static String DEFAULT_ICON = "javalogo_white_32.png";
209 private final static String DEFAULT_CONTROL_TEMPLATE = "template.control";
210 private final static String DEFAULT_PRERM_TEMPLATE = "template.prerm";
211 private final static String DEFAULT_PREINSTALL_TEMPLATE =
212 "template.preinst";
213 private final static String DEFAULT_POSTRM_TEMPLATE = "template.postrm";
214 private final static String DEFAULT_POSTINSTALL_TEMPLATE =
215 "template.postinst";
216 private final static String DEFAULT_COPYRIGHT_TEMPLATE =
575 .append("\n");
576
577 deregistrations.append(" xdg-mime uninstall ")
578 .append(LINUX_INSTALL_DIR.fetchFrom(params))
579 .append("/")
580 .append(data.get("APPLICATION_FS_NAME"))
581 .append("/")
582 .append(mimeInfoFile)
583 .append("\n");
584 addedEntry = true;
585 } else {
586 desktopMimes.append(";");
587 }
588 desktopMimes.append(thisMime);
589
590 if (faIcon != null && faIcon.exists()) {
591 int size = getSquareSizeOfImage(faIcon);
592
593 if (size > 0) {
594 File target = new File(rootDir,
595 APP_FS_NAME.fetchFrom(params)
596 + "_fa_" + faIcon.getName());
597 IOUtils.copyFile(faIcon, target);
598
599 // xdg-icon-resource install --context mimetypes
600 // --size 64 awesomeapp_fa_1.png
601 // application-x.vnd-awesome
602 registrations.append(
603 " xdg-icon-resource install "
604 + "--context mimetypes --size ")
605 .append(size)
606 .append(" ")
607 .append(LINUX_INSTALL_DIR.fetchFrom(params))
608 .append("/")
609 .append(data.get("APPLICATION_FS_NAME"))
610 .append("/")
611 .append(target.getName())
612 .append(" ")
613 .append(dashMime)
614 .append("\n");
615
725
726 w = new BufferedWriter(new FileWriter(getConfig_CopyrightFile(params)));
727 content = preprocessTextResource(
728 getConfig_CopyrightFile(params).getName(),
729 I18N.getString("resource.deb-copyright-file"),
730 DEFAULT_COPYRIGHT_TEMPLATE,
731 data,
732 VERBOSE.fetchFrom(params),
733 RESOURCE_DIR.fetchFrom(params));
734 w.write(content);
735 w.close();
736
737 return true;
738 }
739
740 private Map<String, String> createReplacementData(
741 Map<String, ? super Object> params) {
742 Map<String, String> data = new HashMap<>();
743
744 data.put("APPLICATION_NAME", APP_NAME.fetchFrom(params));
745 data.put("APPLICATION_FS_NAME", APP_FS_NAME.fetchFrom(params));
746 data.put("APPLICATION_PACKAGE", BUNDLE_NAME.fetchFrom(params));
747 data.put("APPLICATION_VENDOR", VENDOR.fetchFrom(params));
748 data.put("APPLICATION_MAINTAINER", MAINTAINER.fetchFrom(params));
749 data.put("APPLICATION_VERSION", VERSION.fetchFrom(params));
750 data.put("APPLICATION_LAUNCHER_FILENAME",
751 APP_FS_NAME.fetchFrom(params));
752 data.put("INSTALLATION_DIRECTORY", LINUX_INSTALL_DIR.fetchFrom(params));
753 data.put("XDG_PREFIX", XDG_FILE_PREFIX.fetchFrom(params));
754 data.put("DEPLOY_BUNDLE_CATEGORY", CATEGORY.fetchFrom(params));
755 data.put("APPLICATION_DESCRIPTION", DESCRIPTION.fetchFrom(params));
756 data.put("APPLICATION_SUMMARY", TITLE.fetchFrom(params));
757 data.put("APPLICATION_COPYRIGHT", COPYRIGHT.fetchFrom(params));
758 data.put("APPLICATION_LICENSE_TEXT", LICENSE_TEXT.fetchFrom(params));
759 data.put("APPLICATION_ARCH", getArch());
760 data.put("APPLICATION_INSTALLED_SIZE",
761 Long.toString(getInstalledSizeKB(params)));
762 String deps = LINUX_PACKAGE_DEPENDENCIES.fetchFrom(params);
763 data.put("PACKAGE_DEPENDENCIES",
764 deps.isEmpty() ? "" : "Depends: " + deps);
765 data.put("CREATE_JRE_INSTALLER",
766 Arguments.CREATE_JRE_INSTALLER.fetchFrom(params).toString());
767
768 return data;
769 }
770
771 private File getConfig_DesktopShortcutFile(File rootDir,
772 Map<String, ? super Object> params) {
773 return new File(rootDir,
774 APP_FS_NAME.fetchFrom(params) + ".desktop");
775 }
776
777 private File getConfig_IconFile(File rootDir,
778 Map<String, ? super Object> params) {
779 return new File(rootDir,
780 APP_FS_NAME.fetchFrom(params) + ".png");
781 }
782
783 private File getConfig_InitScriptFile(Map<String, ? super Object> params) {
784 return new File(LinuxAppBundler.getRootDir(
785 APP_IMAGE_ROOT.fetchFrom(params), params),
786 BUNDLE_NAME.fetchFrom(params) + ".init");
787 }
788
789 private File getConfig_ControlFile(Map<String, ? super Object> params) {
790 return new File(CONFIG_DIR.fetchFrom(params), "control");
791 }
792
793 private File getConfig_PreinstallFile(Map<String, ? super Object> params) {
794 return new File(CONFIG_DIR.fetchFrom(params), "preinst");
795 }
796
797 private File getConfig_PrermFile(Map<String, ? super Object> params) {
798 return new File(CONFIG_DIR.fetchFrom(params), "prerm");
799 }
800
|
176 }
177 }
178 return "Unknown";
179 },
180 (s, p) -> s);
181
182 public static final BundlerParamInfo<String> XDG_FILE_PREFIX =
183 new StandardBundlerParam<> (
184 I18N.getString("param.xdg-prefix.name"),
185 I18N.getString("param.xdg-prefix.description"),
186 "linux.xdg-prefix",
187 String.class,
188 params -> {
189 try {
190 String vendor;
191 if (params.containsKey(VENDOR.getID())) {
192 vendor = VENDOR.fetchFrom(params);
193 } else {
194 vendor = "jpackage";
195 }
196 String appName = APP_NAME.fetchFrom(params);
197
198 return (appName + "-" + vendor).replaceAll("\\s", "");
199 } catch (Exception e) {
200 if (Log.isDebug()) {
201 e.printStackTrace();
202 }
203 }
204 return "unknown-MimeInfo.xml";
205 },
206 (s, p) -> s);
207
208 private final static String DEFAULT_ICON = "javalogo_white_32.png";
209 private final static String DEFAULT_CONTROL_TEMPLATE = "template.control";
210 private final static String DEFAULT_PRERM_TEMPLATE = "template.prerm";
211 private final static String DEFAULT_PREINSTALL_TEMPLATE =
212 "template.preinst";
213 private final static String DEFAULT_POSTRM_TEMPLATE = "template.postrm";
214 private final static String DEFAULT_POSTINSTALL_TEMPLATE =
215 "template.postinst";
216 private final static String DEFAULT_COPYRIGHT_TEMPLATE =
575 .append("\n");
576
577 deregistrations.append(" xdg-mime uninstall ")
578 .append(LINUX_INSTALL_DIR.fetchFrom(params))
579 .append("/")
580 .append(data.get("APPLICATION_FS_NAME"))
581 .append("/")
582 .append(mimeInfoFile)
583 .append("\n");
584 addedEntry = true;
585 } else {
586 desktopMimes.append(";");
587 }
588 desktopMimes.append(thisMime);
589
590 if (faIcon != null && faIcon.exists()) {
591 int size = getSquareSizeOfImage(faIcon);
592
593 if (size > 0) {
594 File target = new File(rootDir,
595 APP_NAME.fetchFrom(params)
596 + "_fa_" + faIcon.getName());
597 IOUtils.copyFile(faIcon, target);
598
599 // xdg-icon-resource install --context mimetypes
600 // --size 64 awesomeapp_fa_1.png
601 // application-x.vnd-awesome
602 registrations.append(
603 " xdg-icon-resource install "
604 + "--context mimetypes --size ")
605 .append(size)
606 .append(" ")
607 .append(LINUX_INSTALL_DIR.fetchFrom(params))
608 .append("/")
609 .append(data.get("APPLICATION_FS_NAME"))
610 .append("/")
611 .append(target.getName())
612 .append(" ")
613 .append(dashMime)
614 .append("\n");
615
725
726 w = new BufferedWriter(new FileWriter(getConfig_CopyrightFile(params)));
727 content = preprocessTextResource(
728 getConfig_CopyrightFile(params).getName(),
729 I18N.getString("resource.deb-copyright-file"),
730 DEFAULT_COPYRIGHT_TEMPLATE,
731 data,
732 VERBOSE.fetchFrom(params),
733 RESOURCE_DIR.fetchFrom(params));
734 w.write(content);
735 w.close();
736
737 return true;
738 }
739
740 private Map<String, String> createReplacementData(
741 Map<String, ? super Object> params) {
742 Map<String, String> data = new HashMap<>();
743
744 data.put("APPLICATION_NAME", APP_NAME.fetchFrom(params));
745 data.put("APPLICATION_FS_NAME", APP_NAME.fetchFrom(params));
746 data.put("APPLICATION_PACKAGE", BUNDLE_NAME.fetchFrom(params));
747 data.put("APPLICATION_VENDOR", VENDOR.fetchFrom(params));
748 data.put("APPLICATION_MAINTAINER", MAINTAINER.fetchFrom(params));
749 data.put("APPLICATION_VERSION", VERSION.fetchFrom(params));
750 data.put("APPLICATION_LAUNCHER_FILENAME", APP_NAME.fetchFrom(params));
751 data.put("INSTALLATION_DIRECTORY", LINUX_INSTALL_DIR.fetchFrom(params));
752 data.put("XDG_PREFIX", XDG_FILE_PREFIX.fetchFrom(params));
753 data.put("DEPLOY_BUNDLE_CATEGORY", CATEGORY.fetchFrom(params));
754 data.put("APPLICATION_DESCRIPTION", DESCRIPTION.fetchFrom(params));
755 data.put("APPLICATION_SUMMARY", TITLE.fetchFrom(params));
756 data.put("APPLICATION_COPYRIGHT", COPYRIGHT.fetchFrom(params));
757 data.put("APPLICATION_LICENSE_TEXT", LICENSE_TEXT.fetchFrom(params));
758 data.put("APPLICATION_ARCH", getArch());
759 data.put("APPLICATION_INSTALLED_SIZE",
760 Long.toString(getInstalledSizeKB(params)));
761 String deps = LINUX_PACKAGE_DEPENDENCIES.fetchFrom(params);
762 data.put("PACKAGE_DEPENDENCIES",
763 deps.isEmpty() ? "" : "Depends: " + deps);
764 data.put("CREATE_JRE_INSTALLER",
765 Arguments.CREATE_JRE_INSTALLER.fetchFrom(params).toString());
766
767 return data;
768 }
769
770 private File getConfig_DesktopShortcutFile(File rootDir,
771 Map<String, ? super Object> params) {
772 return new File(rootDir, APP_NAME.fetchFrom(params) + ".desktop");
773 }
774
775 private File getConfig_IconFile(File rootDir,
776 Map<String, ? super Object> params) {
777 return new File(rootDir, APP_NAME.fetchFrom(params) + ".png");
778 }
779
780 private File getConfig_InitScriptFile(Map<String, ? super Object> params) {
781 return new File(LinuxAppBundler.getRootDir(
782 APP_IMAGE_ROOT.fetchFrom(params), params),
783 BUNDLE_NAME.fetchFrom(params) + ".init");
784 }
785
786 private File getConfig_ControlFile(Map<String, ? super Object> params) {
787 return new File(CONFIG_DIR.fetchFrom(params), "control");
788 }
789
790 private File getConfig_PreinstallFile(Map<String, ? super Object> params) {
791 return new File(CONFIG_DIR.fetchFrom(params), "preinst");
792 }
793
794 private File getConfig_PrermFile(Map<String, ? super Object> params) {
795 return new File(CONFIG_DIR.fetchFrom(params), "prerm");
796 }
797
|