diff options
Diffstat (limited to 'nsis/update-manager.nsi')
| -rw-r--r-- | nsis/update-manager.nsi | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/nsis/update-manager.nsi b/nsis/update-manager.nsi new file mode 100644 index 0000000..f79a8a6 --- /dev/null +++ b/nsis/update-manager.nsi | |||
| @@ -0,0 +1,124 @@ | |||
| 1 | ;-------------------------------- | ||
| 2 | |||
| 3 | !include "sylpheed-defs.nsh" | ||
| 4 | |||
| 5 | SetCompressor /SOLID lzma | ||
| 6 | |||
| 7 | ;-------------------------------- | ||
| 8 | |||
| 9 | !include "nsProcess.nsh" | ||
| 10 | |||
| 11 | !include "MUI.nsh" | ||
| 12 | !include "Sections.nsh" | ||
| 13 | !include "FileFunc.nsh" | ||
| 14 | |||
| 15 | ; MUI Settings | ||
| 16 | !define MUI_ABORTWARNING | ||
| 17 | !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-blue.ico" | ||
| 18 | !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-blue.ico" | ||
| 19 | |||
| 20 | ; Welcome page | ||
| 21 | ;!insertmacro MUI_PAGE_WELCOME | ||
| 22 | ; License page | ||
| 23 | ;!define MUI_LICENSEPAGE_RADIOBUTTONS | ||
| 24 | ;!insertmacro MUI_PAGE_LICENSE $(license) | ||
| 25 | ; Components page | ||
| 26 | ;!insertmacro MUI_PAGE_COMPONENTS | ||
| 27 | ; Directory page | ||
| 28 | ;!insertmacro MUI_PAGE_DIRECTORY | ||
| 29 | ; Instfiles page | ||
| 30 | !insertmacro MUI_PAGE_INSTFILES | ||
| 31 | ; Finish page | ||
| 32 | ;!define MUI_FINISHPAGE_RUN "$INSTDIR\sylpheed.exe" | ||
| 33 | ;!define MUI_FINISHPAGE_RUN_NOTCHECKED | ||
| 34 | !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt" | ||
| 35 | ;!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README-win32.txt" | ||
| 36 | ;!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README-win32-ja.txt" | ||
| 37 | !define MUI_FINISHPAGE_SHOWREADME_FUNCTION "ShowReadme" | ||
| 38 | !define MUI_FINISHPAGE_SHOWREADME_TEXT "$(readme)" | ||
| 39 | !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED | ||
| 40 | !define MUI_FINISHPAGE_LINK "$(jump)" | ||
| 41 | !define MUI_FINISHPAGE_LINK_LOCATION ${PRODUCT_WEB_SITE} | ||
| 42 | !insertmacro MUI_PAGE_FINISH | ||
| 43 | |||
| 44 | ; Language files | ||
| 45 | !insertmacro MUI_LANGUAGE "English" # ${LANG_ENGLISH} | ||
| 46 | !insertmacro MUI_LANGUAGE "Spanish" # ${LANG_SPANISH} | ||
| 47 | !insertmacro MUI_LANGUAGE "Japanese" # ${LANG_JAPANESE} | ||
| 48 | |||
| 49 | !include "English.nsh" | ||
| 50 | !include "Spanish.nsh" | ||
| 51 | !include "Japanese.nsh" | ||
| 52 | ;-------------------------------- | ||
| 53 | |||
| 54 | Caption "$(^Name) Update Manager" | ||
| 55 | Name "${PRODUCT_NAME}" | ||
| 56 | OutFile "update-manager.exe" | ||
| 57 | InstallDir "$PROGRAMFILES\${PRODUCT_NAME}" | ||
| 58 | InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" | ||
| 59 | |||
| 60 | RequestExecutionLevel admin | ||
| 61 | |||
| 62 | ShowInstDetails hide | ||
| 63 | XPStyle on | ||
| 64 | BrandingText "${INST_NAME} ${INST_VERSION}" | ||
| 65 | |||
| 66 | !define TEMP_INSTALLER_PATH "$TEMP\${PRODUCT_NAME}_setup.exe" | ||
| 67 | |||
| 68 | Section "Download" | ||
| 69 | ; SetOutPath "$TEMP" | ||
| 70 | |||
| 71 | ${GetParameters} $R0 | ||
| 72 | ${GetOptions} "$R0" "/uri" $1 | ||
| 73 | |||
| 74 | StrCmp "$1" "" 0 uri_option_found | ||
| 75 | DetailPrint "usage: update-manager.exe /uri 'http://example.com/Sylpheed-VER_setup.exe'" | ||
| 76 | DetailPrint "or update-manager.exe /uri path\to\Sylpheed-VER_setup.exe" | ||
| 77 | Abort | ||
| 78 | uri_option_found: | ||
| 79 | |||
| 80 | IfFileExists "$1" copy_file | ||
| 81 | |||
| 82 | DetailPrint "Downloading $1" | ||
| 83 | NSISdl::download \ | ||
| 84 | /TRANSLATE2 "$(downloading)" "$(connecting)" "$(second)" "$(minute)" "$(hour)" "$(seconds)" "$(minutes)" "$(hours)" "$(progress)" \ | ||
| 85 | /TIMEOUT=30000 "$1" "${TEMP_INSTALLER_PATH}" | ||
| 86 | Pop $0 | ||
| 87 | StrCmp "$0" "success" download_ok | ||
| 88 | DetailPrint "$(download_failed) $0" | ||
| 89 | Abort | ||
| 90 | |||
| 91 | |||
| 92 | copy_file: | ||
| 93 | CopyFiles "$1" "${TEMP_INSTALLER_PATH}" | ||
| 94 | Goto download_ok | ||
| 95 | |||
| 96 | download_ok: | ||
| 97 | SectionEnd | ||
| 98 | |||
| 99 | Section "Exec Installer" | ||
| 100 | ${nsProcess::FindProcess} "sylpheed.exe" $R0 | ||
| 101 | StrCmp $R0 "0" 0 +3 | ||
| 102 | MessageBox MB_ICONQUESTION|MB_YESNO "$(kill_and_update_confirm)" /SD IDYES IDYES +2 | ||
| 103 | Abort | ||
| 104 | |||
| 105 | ExecWait "$INSTDIR\sylpheed.exe --exit" $R0 | ||
| 106 | |||
| 107 | ; Wait for sylpheed.exe quit completely | ||
| 108 | ${nsProcess::FindProcess} "sylpheed.exe" $R0 | ||
| 109 | StrCmp $R0 "0" 0 wait_done | ||
| 110 | Sleep 1000 | ||
| 111 | ${nsProcess::FindProcess} "sylpheed.exe" $R0 | ||
| 112 | StrCmp $R0 "0" 0 wait_done | ||
| 113 | Sleep 1000 | ||
| 114 | ${nsProcess::FindProcess} "sylpheed.exe" $R0 | ||
| 115 | StrCmp $R0 "0" 0 wait_done | ||
| 116 | Sleep 1000 | ||
| 117 | |||
| 118 | wait_done: | ||
| 119 | ExecWait '"${TEMP_INSTALLER_PATH}" /S' $0 | ||
| 120 | SectionEnd | ||
| 121 | |||
| 122 | Function ShowReadme | ||
| 123 | ExecShell open "$INSTDIR\README.txt" | ||
| 124 | FunctionEnd | ||
