IDEA-199519 Uninstall: The IDE installation folder is not deleted after uninstallation

IDEA-CR-37456
This commit is contained in:
Vladimir.Orlov
2018-10-02 13:13:55 +03:00
parent 1751469f94
commit d496c4df36
3 changed files with 20 additions and 7 deletions
+6 -1
View File
@@ -1576,7 +1576,6 @@ skip_delete_settings:
; Delete uninstaller itself
Delete "$INSTDIR\bin\Uninstall.exe"
Delete "$INSTDIR\jre32\bin\client\classes.jsa"
Delete "$INSTDIR\jre64\bin\server\classes.jsa"
Push "Complete"
@@ -1590,6 +1589,12 @@ skip_delete_settings:
Delete "$INSTDIR\bin\${PRODUCT_EXE_FILE}.vmoptions"
Delete "$INSTDIR\bin\${PRODUCT_EXE_FILE_64}.vmoptions"
${EndIf}
IfFileExists "$INSTDIR\jre32\*.*" 0 no_jre32
Delete "$INSTDIR\jre32\bin\server\classes.jsa"
StrCpy $0 "$INSTDIR\jre32\lib\applet"
Call un.DeleteDirIfEmpty
!include "un_jre32_win.nsh"
no_jre32:
!include "unidea_win.nsh"
StrCpy $0 "$INSTDIR"
Call un.DeleteDirIfEmpty
@@ -47,12 +47,12 @@ class NsisFileListGenerator {
}
}
void generateUninstallerFile(File outputFile) {
void generateUninstallerFile(String installDir = "\$INSTDIR", File outputFile) {
outputFile.withWriter { BufferedWriter out ->
filesRelativePaths.toSorted().each {
out.writeLine("Delete \"\$INSTDIR\\${toWinPath(it)}\"")
out.writeLine("Delete \"${installDir}\\${toWinPath(it)}\"")
if (it.endsWith(".py")) {
out.writeLine("Delete \"\$INSTDIR\\${toWinPath(it)}c\"") //.pyc
out.writeLine("Delete \"${installDir}\\${toWinPath(it)}c\"") //.pyc
}
}
@@ -60,11 +60,11 @@ class NsisFileListGenerator {
directoryToFiles.keySet().toSorted().reverseEach {
if (!it.empty) {
out.writeLine("RmDir /r \"\$INSTDIR\\${toWinPath(it)}\\__pycache__\"");
out.writeLine("RmDir \"\$INSTDIR\\${toWinPath(it)}\"");
out.writeLine("RmDir /r \"${installDir}\\${toWinPath(it)}\\__pycache__\"");
out.writeLine("RmDir \"${installDir}\\${toWinPath(it)}\"");
}
}
out.writeLine("RmDir \"\$INSTDIR\"")
out.writeLine("RmDir \"${installDir}\"")
}
}
@@ -17,6 +17,7 @@ package org.jetbrains.intellij.build.impl
import com.intellij.openapi.util.SystemInfoRt
import org.jetbrains.intellij.build.BuildContext
import org.jetbrains.intellij.build.JvmArchitecture
import org.jetbrains.intellij.build.WindowsDistributionCustomizer
import static com.intellij.openapi.util.io.FileUtil.toSystemDependentName
@@ -118,6 +119,13 @@ class WinExeInstallerBuilder {
}
generator.generateInstallerFile(new File(box, "nsiconf/idea_win.nsh"))
generator.generateUninstallerFile(new File(box, "nsiconf/unidea_win.nsh"))
String jre32Dir = buildContext.bundledJreManager.extractWinJre(JvmArchitecture.x32)
if (jre32Dir != null) {
def generatorForJre32Dir = new NsisFileListGenerator()
generatorForJre32Dir.addDirectory(jre32Dir + "/jre32")
generatorForJre32Dir.generateUninstallerFile("\$INSTDIR\\jre32", new File(box, "nsiconf/un_jre32_win.nsh"))
}
}
catch (IOException e) {
buildContext.messages.error("Failed to generated list of files for NSIS installer: $e")