annotate scripts/mamba.nsi @ 460:d05ea729f0d5

NSIS scripts.
author Simon Cross <hodgestar@gmail.com>
date Sat, 17 Sep 2011 20:56:57 +0200
parents
children 11fe3636f755
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
460
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
1 ; Compile with ./scripts/makensis ./scripts/mamba.nsi .
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
2 ; You'll need to have previously run wine-py2exe
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
3
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
4 !include "MUI.nsh"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
5
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
6 ; Application Details
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
7
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
8 !define MM_VERSION "0.0.0" ; set by makensis scripts
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
9 !define MM_UNPACK "mutable-mamba-${MM_VERSION}"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
10 !define DIST_FOLDER "../dist"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
11
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
12 Name "Mutable Mamba"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
13 OutFile "${DIST_FOLDER}\mutable-mamba-${MM_VERSION}.exe"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
14 InstallDir "$PROGRAMFILES\Mutable-Mamba-${MM_VERSION}"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
15
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
16 ; Interface Settings
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
17
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
18 !define MUI_ABORTWARNING
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
19
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
20 !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\arrow-install.ico"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
21 !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\arrow-uninstall.ico"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
22
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
23 !define MUI_HEADERIMAGE
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
24 !define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\orange.bmp"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
25 !define MUI_HEADERIMAGE_UNBITMAP "${NSISDIR}\Contrib\Graphics\Header\orange-uninstall.bmp"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
26
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
27 ; Dependencies
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
28
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
29 !define COMBINED_LICENSE "../LICENSE.txt"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
30 !define MM_ICON "../data/icons/program/icon.ico"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
31 !define MM_PY2EXE_ZIP "mutable-mamba-${MM_VERSION}.zip"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
32 !define UNINSTALLER "Uninstaller.exe"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
33
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
34 ; Pages
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
35
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
36 !insertmacro MUI_PAGE_LICENSE "${COMBINED_LICENSE}"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
37 !insertmacro MUI_PAGE_DIRECTORY
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
38 !insertmacro MUI_PAGE_INSTFILES
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
39
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
40 !insertmacro MUI_UNPAGE_CONFIRM
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
41 !insertmacro MUI_UNPAGE_INSTFILES
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
42
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
43 ; Languages
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
44
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
45 !insertmacro MUI_LANGUAGE "English"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
46
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
47 ; Other Stuff
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
48
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
49 Icon "${MM_ICON}"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
50 SetCompress off ; all the big stuff is already compressed
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
51
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
52 ; Installer Sections
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
53
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
54 Section "Mutable Mamba"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
55 SetOutPath "$INSTDIR"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
56
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
57 WriteUninstaller "$INSTDIR\${UNINSTALLER}"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
58
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
59 File "${DIST_FOLDER}\${MM_PY2EXE_ZIP}"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
60 File "${MM_ICON}"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
61
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
62 ZipDLL::extractall "$INSTDIR\${MM_PY2EXE_ZIP}" "$INSTDIR"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
63 Delete "$INSTDIR\${MM_PY2EXE_ZIP}"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
64
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
65 CreateDirectory "$SMPROGRAMS\Mutable Mamba"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
66
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
67 # link.lnk target.exe
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
68 # parameters icon.file icon_index_number start_options
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
69 # keyboard_shortcut description
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
70
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
71 CreateShortCut "$SMPROGRAMS\Mutable Mamba\Mutable Mamba ${MM_VERSION}.lnk" "$INSTDIR\${MM_UNPACK}\mamba.exe" \
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
72 "" "$INSTDIR\${MM_ICON}" "" SW_SHOWNORMAL \
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
73 "" "Mutable Mamba"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
74
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
75 CreateShortCut "$SMPROGRAMS\Mutable Mamba\Uninstall Mutable Mamba ${MM_VERSION}.lnk" "$INSTDIR\${UNINSTALLER}" \
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
76 "" "" "" SW_SHOWNORMAL \
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
77 "" "Uninstall Mutable Mamba"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
78
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
79 SectionEnd
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
80
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
81 UninstallText "This will uninstall Mutable Mamba ${MM_VERSION}."
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
82 UninstallIcon "${MM_ICON}"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
83
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
84 Section "Uninstall"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
85 ; Delete files not deleted during install
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
86 Delete "$INSTDIR\${MM_ICON}"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
87
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
88 ; Remove py2exe folder
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
89 RMDir /r /REBOOTOK "$INSTDIR\${MM_UNPACK}"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
90
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
91 ; Remove shortcut links
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
92 Delete "$SMPROGRAMS\Mutable Mamba\Mutable Mamba ${MM_VERSION}.lnk"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
93 Delete "$SMPROGRAMS\Mutable Mamba\Uninstall Mutable Mamba ${MM_VERSION}.lnk"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
94
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
95 ; Remove shortcut folder if no links left
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
96 IfFileExists "$SMPROGRAMS\Mutable Mamba\*.lnk" shortcuts_exist 0
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
97 RMDir /REBOOTOK "$SMPROGRAMS\Mutable Mamba"
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
98 shortcuts_exist:
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
99
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
100 ; Final Clean up (no point doing this while the uninstall is incomplete)
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
101 RMDir /r /REBOOTOK $INSTDIR
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
102
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
103 ; Offer to reboot if needed
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
104 IfRebootFlag 0 noreboot
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
105 MessageBox MB_YESNO "A reboot is required to finish the uninstallation. Do you wish to reboot now?" IDNO noreboot
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
106 Reboot
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
107 noreboot:
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
108
d05ea729f0d5 NSIS scripts.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
109 SectionEnd