From 23b754bf2ec93de6529695c6ceda3f6987852412 Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 23 May 2018 14:53:20 +0300 Subject: [PATCH] build scripts: simplification Do not require leading dot in WindowsDistributionCustomizer::fileAssociations property to simplify code and for consistency with MacDistributionCustomizer::fileAssociations. --- .../intellij/build/IdeaCommunityProperties.groovy | 2 +- .../intellij/build/MacDistributionCustomizer.groovy | 2 +- .../build/WindowsDistributionCustomizer.groovy | 2 +- .../intellij/build/impl/WinExeInstallerBuilder.groovy | 11 +++++++++-- .../build/pycharm/PyCharmCommunityProperties.groovy | 2 +- .../build/pycharm/edu/PyCharmEduProperties.groovy | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/build/groovy/org/jetbrains/intellij/build/IdeaCommunityProperties.groovy b/build/groovy/org/jetbrains/intellij/build/IdeaCommunityProperties.groovy index b552661dea92..c3d26e0fd948 100644 --- a/build/groovy/org/jetbrains/intellij/build/IdeaCommunityProperties.groovy +++ b/build/groovy/org/jetbrains/intellij/build/IdeaCommunityProperties.groovy @@ -68,7 +68,7 @@ class IdeaCommunityProperties extends BaseIdeaProperties { { icoPath = "$projectHome/platform/icons/src/idea_CE.ico" installerImagesPath = "$projectHome/build/conf/ideaCE/win/images" - fileAssociations = [".java", ".groovy", ".kt"] + fileAssociations = ["java", "groovy", "kt"] } @Override diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/MacDistributionCustomizer.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/MacDistributionCustomizer.groovy index 4012b6b2880c..dc660d3eb94c 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/MacDistributionCustomizer.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/MacDistributionCustomizer.groovy @@ -70,7 +70,7 @@ abstract class MacDistributionCustomizer { String additionalDocTypes = "" /** - * List of file extensions (without dot) which installer will associate with the product. Note that users won't be able to switch off some + * List of file extensions (without leading dot) which installer will associate with the product. Note that users won't be able to switch off some * of these associations during installation so include only types of files which users will definitely prefer to open by the product. */ List fileAssociations = [] diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/WindowsDistributionCustomizer.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/WindowsDistributionCustomizer.groovy index 0393eb5b2637..99d2dc45407a 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/WindowsDistributionCustomizer.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/WindowsDistributionCustomizer.groovy @@ -68,7 +68,7 @@ abstract class WindowsDistributionCustomizer { String installerImagesPath /** - * List of file extensions (starting with dot) which installer will suggest to associate with the product + * List of file extensions (without leading dot) which installer will suggest to associate with the product */ List fileAssociations = [] diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/WinExeInstallerBuilder.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/WinExeInstallerBuilder.groovy index e58e048a38ba..6f02c11a98e7 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/WinExeInstallerBuilder.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/WinExeInstallerBuilder.groovy @@ -54,7 +54,7 @@ class WinExeInstallerBuilder { buildContext.ant.copy(file: "$silentConfigTemplate", tofile: targetFilePath) File silentConfigFile = new File(targetFilePath) - def extensionsList = customizer.fileAssociations + def extensionsList = getFileAssociations() String associations = "\n\n; List of associations. To create an association change value to 1.\n" if (!extensionsList.isEmpty()) { associations += extensionsList.collect { "$it=0\n" }.join("") @@ -66,6 +66,13 @@ class WinExeInstallerBuilder { } } + /** + * Returns list of file extensions with leading dot added + */ + private List getFileAssociations() { + customizer.fileAssociations.collect { !it.startsWith(".") ? ".$it" : it} + } + void buildInstaller(String winDistPath) { if (!SystemInfoRt.isWindows && !SystemInfoRt.isLinux) { buildContext.messages.warning("Windows installer can be built only under Windows or Linux") @@ -179,7 +186,7 @@ class WinExeInstallerBuilder { !define PRODUCT_VM_OPTIONS_FILE "${toSystemDependentName("$winDistPath/bin/")}\${PRODUCT_VM_OPTIONS_NAME}" """ - def extensionsList = customizer.fileAssociations + def extensionsList = getFileAssociations() def fileAssociations = extensionsList.isEmpty() ? "NoAssociation" : extensionsList.join(",") def linkToJre = customizer.getBaseDownloadUrlForJre() != null ? "${customizer.getBaseDownloadUrlForJre()}/${buildContext.bundledJreManager.archiveNameJre(buildContext)}" : diff --git a/python/build/groovy/org/jetbrains/intellij/build/pycharm/PyCharmCommunityProperties.groovy b/python/build/groovy/org/jetbrains/intellij/build/pycharm/PyCharmCommunityProperties.groovy index 44cff90c555f..2eb66b0f5847 100644 --- a/python/build/groovy/org/jetbrains/intellij/build/pycharm/PyCharmCommunityProperties.groovy +++ b/python/build/groovy/org/jetbrains/intellij/build/pycharm/PyCharmCommunityProperties.groovy @@ -60,7 +60,7 @@ class PyCharmCommunityProperties extends PyCharmPropertiesBase { return new PyCharmWindowsDistributionCustomizer() { { installerImagesPath = "$projectHome/python/build/resources" - fileAssociations = [".py"] + fileAssociations = ["py"] } @Override diff --git a/python/educational-python/build/groovy/org/jetbrains/intellij/build/pycharm/edu/PyCharmEduProperties.groovy b/python/educational-python/build/groovy/org/jetbrains/intellij/build/pycharm/edu/PyCharmEduProperties.groovy index e0f1270c0f0f..b8085c72157a 100644 --- a/python/educational-python/build/groovy/org/jetbrains/intellij/build/pycharm/edu/PyCharmEduProperties.groovy +++ b/python/educational-python/build/groovy/org/jetbrains/intellij/build/pycharm/edu/PyCharmEduProperties.groovy @@ -55,7 +55,7 @@ class PyCharmEduProperties extends PyCharmPropertiesBase { return new PyCharmWindowsDistributionCustomizer() { { installerImagesPath = "$pythonCommunityPath/educational-python/build/resources" - fileAssociations = [".py"] + fileAssociations = ["py"] silentInstallationConfig = "$pythonCommunityPath/educational-python/build/silent.config" customNsiConfigurationFiles = [ "$pythonCommunityPath/educational-python/build/desktop.ini",