aboutsummaryrefslogtreecommitdiff
path: root/nsis/update-manager.nsi
blob: f79a8a608702300691c73c2c536ebea483f15f6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
;--------------------------------

!include "sylpheed-defs.nsh"

SetCompressor /SOLID lzma

;--------------------------------

!include "nsProcess.nsh"

!include "MUI.nsh"
!include "Sections.nsh"
!include "FileFunc.nsh"

; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-blue.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-blue.ico"

; Welcome page
;!insertmacro MUI_PAGE_WELCOME
; License page
;!define MUI_LICENSEPAGE_RADIOBUTTONS
;!insertmacro MUI_PAGE_LICENSE $(license)
; Components page
;!insertmacro MUI_PAGE_COMPONENTS
; Directory page
;!insertmacro MUI_PAGE_DIRECTORY
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
;!define MUI_FINISHPAGE_RUN "$INSTDIR\sylpheed.exe"
;!define MUI_FINISHPAGE_RUN_NOTCHECKED
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
;!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README-win32.txt"
;!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README-win32-ja.txt"
!define MUI_FINISHPAGE_SHOWREADME_FUNCTION "ShowReadme"
!define MUI_FINISHPAGE_SHOWREADME_TEXT "$(readme)"
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
!define MUI_FINISHPAGE_LINK "$(jump)"
!define MUI_FINISHPAGE_LINK_LOCATION ${PRODUCT_WEB_SITE}
!insertmacro MUI_PAGE_FINISH

; Language files
!insertmacro MUI_LANGUAGE "English" # ${LANG_ENGLISH}
!insertmacro MUI_LANGUAGE "Spanish" # ${LANG_SPANISH}
!insertmacro MUI_LANGUAGE "Japanese" # ${LANG_JAPANESE}

!include "English.nsh"
!include "Spanish.nsh"
!include "Japanese.nsh"
;--------------------------------

Caption "$(^Name) Update Manager"
Name "${PRODUCT_NAME}"
OutFile "update-manager.exe"
InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""

RequestExecutionLevel admin

ShowInstDetails hide
XPStyle on
BrandingText "${INST_NAME} ${INST_VERSION}"

!define TEMP_INSTALLER_PATH  "$TEMP\${PRODUCT_NAME}_setup.exe"

Section "Download"
;  SetOutPath "$TEMP"

  ${GetParameters} $R0
  ${GetOptions} "$R0" "/uri" $1

  StrCmp "$1" "" 0 uri_option_found
    DetailPrint "usage: update-manager.exe /uri 'http://example.com/Sylpheed-VER_setup.exe'"
    DetailPrint "or update-manager.exe /uri path\to\Sylpheed-VER_setup.exe"
    Abort
  uri_option_found:

  IfFileExists "$1" copy_file

  DetailPrint "Downloading $1"
  NSISdl::download \
    /TRANSLATE2 "$(downloading)" "$(connecting)" "$(second)" "$(minute)" "$(hour)" "$(seconds)" "$(minutes)" "$(hours)" "$(progress)" \
    /TIMEOUT=30000 "$1" "${TEMP_INSTALLER_PATH}"
  Pop $0
  StrCmp "$0" "success" download_ok
  DetailPrint "$(download_failed) $0"
  Abort


  copy_file:
  CopyFiles "$1" "${TEMP_INSTALLER_PATH}"
  Goto download_ok

  download_ok:
SectionEnd

Section "Exec Installer"
  ${nsProcess::FindProcess} "sylpheed.exe" $R0
  StrCmp $R0 "0" 0 +3
  MessageBox MB_ICONQUESTION|MB_YESNO "$(kill_and_update_confirm)" /SD IDYES IDYES +2
  Abort

  ExecWait "$INSTDIR\sylpheed.exe --exit" $R0

  ; Wait for sylpheed.exe quit completely
  ${nsProcess::FindProcess} "sylpheed.exe" $R0
  StrCmp $R0 "0" 0 wait_done
  Sleep 1000
  ${nsProcess::FindProcess} "sylpheed.exe" $R0
  StrCmp $R0 "0" 0 wait_done
  Sleep 1000
  ${nsProcess::FindProcess} "sylpheed.exe" $R0
  StrCmp $R0 "0" 0 wait_done
  Sleep 1000

  wait_done:
  ExecWait '"${TEMP_INSTALLER_PATH}" /S' $0
SectionEnd

Function ShowReadme
  ExecShell open "$INSTDIR\README.txt"
FunctionEnd