Created
May 3, 2016 03:10
-
-
Save thatkookooguy/ad6b47f10620f6df8df03a09dae08a18 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This installs two files, app.exe and logo.ico, creates a start menu shortcut, builds an uninstaller, and | |
# adds uninstall information to the registry for Add/Remove Programs | |
# To get started, put this script into a folder with the two files (app.exe, logo.ico, and license.rtf - | |
# You'll have to create these yourself) and run makensis on it | |
# If you change the names "app.exe", "logo.ico", or "license.rtf" you should do a search and replace - they | |
# show up in a few places. | |
# All the other settings can be tweaked by editing the !defines at the top of this script | |
!define APPNAME "Redkix" | |
!define COMPANYNAME "Redkix" | |
!define DESCRIPTION "The new outlook on email" | |
# These three must be integers | |
!define VERSIONMAJOR 1 | |
!define VERSIONMINOR 1 | |
!define VERSIONBUILD 1 | |
# These will be displayed by the "Click here for support information" link in "Add/Remove Programs" | |
# It is possible to use "mailto:" links in here to open the email client | |
!define HELPURL "http://redkix.com" # "Support Information" link | |
!define UPDATEURL "http://redkix.com" # "Product Updates" link | |
!define ABOUTURL "http://redkix.com" # "Publisher" link | |
# This is the size (in kB) of all the files copied into "Program Files" | |
!define INSTALLSIZE 121000 | |
RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on) | |
InstallDir "$PROGRAMFILES\${COMPANYNAME}\${APPNAME}" | |
# This will be in the installer/uninstaller's title bar | |
Name "${COMPANYNAME} - ${APPNAME}" | |
Icon "logo.ico" | |
outFile "RedkixInstaller.exe" | |
!include LogicLib.nsh | |
# Just three pages - license agreement, install location, and installation | |
page directory | |
Page instfiles | |
!macro VerifyUserIsAdmin | |
UserInfo::GetAccountType | |
pop $0 | |
${If} $0 != "admin" ;Require admin rights on NT4+ | |
messageBox mb_iconstop "Administrator rights required!" | |
setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED | |
quit | |
${EndIf} | |
!macroend | |
function .onInit | |
setShellVarContext all | |
!insertmacro VerifyUserIsAdmin | |
functionEnd | |
section "install" | |
# Files for the install directory - to build the installer, these should be in the same directory as the install script (this file) | |
setOutPath $INSTDIR | |
# Files added here should be removed by the uninstaller (see section "uninstall") | |
file "xinput1_3.dll" | |
file "content_resources_200_percent.pak" | |
file "content_shell.pak" | |
file "d3dcompiler_47.dll" | |
file "icudtl.dat" | |
file "libEGL.dll" | |
file "libGLESv2.dll" | |
file "LICENSE" | |
file "LICENSES.chromium.html" | |
file "msvcp120.dll" | |
file "natives_blob.bin" | |
file "node.dll" | |
file "pdf.dll" | |
file "Redkix Integration.exe" | |
file "snapshot_blob.bin" | |
file "ui_resources_200_percent.pak" | |
file "vccorlib120.dll" | |
file "version" | |
file "logo.ico" | |
# copy folders | |
SetOutPath $INSTDIR\locales | |
File /nonfatal /a /r "locales\" #note back slash at the end | |
SetOutPath $INSTDIR\resources | |
File /nonfatal /a /r "resources\" #note back slash at the end | |
# Add any other files for the install directory (license files, app data, etc) here | |
# Uninstaller - See function un.onInit and section "uninstall" for configuration | |
writeUninstaller "$INSTDIR\uninstall.exe" | |
# Start Menu | |
createDirectory "$SMPROGRAMS\${COMPANYNAME}" | |
createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\Redkix Integration.exe" | |
# Desktop Shortuct | |
CreateShortcut "$desktop\${APPNAME}.lnk" "$INSTDIR\Redkix Integration.exe" | |
# Registry information for add/remove programs | |
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" "${COMPANYNAME} - ${APPNAME} - ${DESCRIPTION}" | |
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" | |
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" | |
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\"" | |
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\logo.ico$\"" | |
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "$\"${COMPANYNAME}$\"" | |
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "HelpLink" "$\"${HELPURL}$\"" | |
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$\"" | |
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\"" | |
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "$\"${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}$\"" | |
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMajor" ${VERSIONMAJOR} | |
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMinor" ${VERSIONMINOR} | |
# There is no option for modifying or repairing the install | |
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1 | |
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1 | |
# Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size | |
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "EstimatedSize" ${INSTALLSIZE} | |
sectionEnd | |
# Uninstaller | |
function un.onInit | |
SetShellVarContext all | |
#Verify the uninstaller - last chance to back out | |
MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next | |
Abort | |
next: | |
!insertmacro VerifyUserIsAdmin | |
functionEnd | |
section "uninstall" | |
# Remove Start Menu launcher | |
delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" | |
# Try to remove the Start Menu folder - this will only happen if it is empty | |
rmDir "$SMPROGRAMS\${COMPANYNAME}" | |
# Remove desktop shortcut | |
delete "$desktop\${APPNAME}.lnk" | |
# Remove files | |
delete $INSTDIR\xinput1_3.dll | |
delete $INSTDIR\content_resources_200_percent.pak | |
delete $INSTDIR\content_shell.pak | |
delete $INSTDIR\d3dcompiler_47.dll | |
delete $INSTDIR\icudtl.dat | |
delete $INSTDIR\libEGL.dll | |
delete $INSTDIR\libGLESv2.dll | |
delete $INSTDIR\LICENSE | |
delete $INSTDIR\LICENSES.chromium.html | |
delete $INSTDIR\msvcp120.dll | |
delete $INSTDIR\natives_blob.bin | |
delete $INSTDIR\node.dll | |
delete $INSTDIR\pdf.dll | |
delete "$INSTDIR\Redkix Integration.exe" | |
delete $INSTDIR\snapshot_blob.bin | |
delete $INSTDIR\ui_resources_200_percent.pak | |
delete $INSTDIR\vccorlib120.dll | |
delete $INSTDIR\version | |
delete $INSTDIR\logo.ico | |
RMDir /r $INSTDIR\locales | |
RMDir /r $INSTDIR\resources | |
# Always delete uninstaller as the last action | |
delete $INSTDIR\uninstall.exe | |
# should only work if the folder empty. safer for un-clean installs | |
RMDir "$INSTDIR" | |
# Remove uninstaller information from the registry | |
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" | |
sectionEnd |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment