< prev index next >

src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxDebBundler.java

Print this page




 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 


< prev index next >