From 2ce75d8012004826522137eb9e59b3456e3e1dd6 Mon Sep 17 00:00:00 2001 From: joostverburg Date: Tue, 18 Feb 2003 20:20:01 +0000 Subject: [PATCH] NSIS Update source git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2179 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/NSIS Update/NSISUpdate.nsi | 328 ++++++++++++++++++ Contrib/NSIS Update/Resources/BIN/bzip2.exe | Bin 0 -> 73728 bytes .../NSIS Update/Resources/GUI/NSISUpdate.exe | Bin 0 -> 6144 bytes Contrib/NSIS Update/Resources/GUI/io.ini | 31 ++ Examples/cvsdata.nsi | 4 + 5 files changed, 363 insertions(+) create mode 100644 Contrib/NSIS Update/NSISUpdate.nsi create mode 100644 Contrib/NSIS Update/Resources/BIN/bzip2.exe create mode 100644 Contrib/NSIS Update/Resources/GUI/NSISUpdate.exe create mode 100644 Contrib/NSIS Update/Resources/GUI/io.ini diff --git a/Contrib/NSIS Update/NSISUpdate.nsi b/Contrib/NSIS Update/NSISUpdate.nsi new file mode 100644 index 00000000..66f06dc9 --- /dev/null +++ b/Contrib/NSIS Update/NSISUpdate.nsi @@ -0,0 +1,328 @@ +# NSIS Update +##################################################################### +# Original version Copyright (C) 2002-2003 Nathan Purciful. +# Version for NSIS distribution Copyright (C) 2003 Joost Verburg. +# +# This software is provided 'as-is', without any express or implied +# warranty. In no event will the authors be held liable for any +# damages arising from the use of this software. +# +# Permission is granted to anyone to use this software for any purpose, +# including commercial applications, and to alter it and redistribute +# it freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you must +# not claim that you wrote the original software. If you use this +# software in a product, an acknowledgment in the product +# documentation would be appreciated but is not required. +# 2. Altered source versions must be plainly marked as such, and must +# not be misrepresented as being the original software. +# 3. This notice may not be removed or altered from any source +# distribution. +# +# This program uses CVSNT software, http://www.cvsnt.org/ +# +##################################################################### +# Defines + +!define MISSINGFILES $0 +!define NSISPATH $1 + +!define TEMP1 $R0 +!define TEMP2 $R1 +!define TEMP3 $R2 + +##################################################################### +# Modern UI + +!define MUI_PRODUCT "NSIS Update" +!define MUI_VERSION "" +!define MUI_BRANDINGTEXT " " +!define MUI_UI "Resources\GUI\NSISUpdate.exe" +!define MUI_ICON "${NSISDIR}\Contrib\Icons\yi-simple2_install.ico" + +!define MUI_CUSTOMPAGECOMMANDS + +!include "MUI.nsh" + +!insertmacro MUI_SYSTEM + +!insertmacro MUI_LANGUAGE "English" + +Page custom UpdateMethod ": Update Method" +!insertmacro MUI_PAGECOMMAND_INSTFILES + +##################################################################### +# Configuration + +Caption /LANG=${LANG_ENGLISH} "${MUI_PRODUCT}" +OutFile "..\..\Bin\NSISUpdate.exe" +InstallButtonText "Update" +ShowInstDetails show + +##################################################################### +# Macros + +!macro checkFile PATH FILE + + IfFileExists "${PATH}\${FILE}" +2 + StrCpy ${MISSINGFILES} "${FILE} ${MISSINGFILES}" + +!macroend + +!macro checkFileDownload PATH FILE + + IfFileExists "${PATH}\${FILE}" "Done_${FILE}" + + IfFileExists "$PLUGINSDIR\bzip2.exe" +3" + File "/oname=$PLUGINSDIR\bzip2.exe" "Resources\bin\bzip2.exe" + + NSISdl::download "http://nsis.sourceforge.net/nsisupdate/${FILE}.bz2" "${PATH}\${FILE}.bz2" + Pop ${TEMP1} + + StrCmp ${TEMP1} "success" "Extract_${FILE}" + MessageBox MB_OK|MB_ICONSTOP "Download failed: ${TEMP1}." + Quit + + "Extract_${FILE}:" + nsExec::ExecToLog '"$PLUGINSDIR\bzip2.exe" -vd "${PATH}\${FILE}.bz2"' + + IfFileExists "${PATH}\${FILE}" "Done_${FILE}" + MessageBox MB_OK|MB_ICONSTOP "Extraction failed." + Quit + + "Done_${FILE}:" + +!macroend + +##################################################################### +# Functions + +Function .onInit + + !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "Resources\GUI\io.ini" "io.ini" + + # InitPluginsDir called by Modern UI InstallOptions extract macro + +FunctionEnd + +Function CheckCVSAccess + + IfFileExists "${NSISPATH}\Cvs\Root" +2 + Return + + Push ${TEMP1} + Push ${TEMP2} + + FileOpen ${TEMP1} "${NSISPATH}\CVS\Root" r + FileRead ${TEMP1} ${TEMP2} 9 + FileClose ${TEMP1} + + StrCmp ${TEMP2} ":pserver:" AccessOK + + MessageBox MB_OK|MB_ICONSTOP "NSIS Update only supports anonymous CVS access.$\r$\nNSIS developers should use a client with support for the :ext: access mode." + Quit + + AccessOK: + + Pop ${TEMP2} + Pop ${TEMP1} + +FunctionEnd + +Function CheckCVSFiles + + !insertmacro checkFile "$EXEDIR" "cvs95.exe" + !insertmacro checkFile "$SYSDIR" "msvcr70.dll" + !insertmacro checkFile "$SYSDIR" "msvcp70.dll" + !insertmacro checkFile "$EXEDIR" "pserver_protocol.dll" + + StrCmp ${MISSINGFILES} "" done + MessageBox MB_YESNO|MB_ICONQUESTION "NSIS update has to download a few small CVS client files in order to be able to update your NSIS files.$\r$\nThese files only have to be download once. Do you want to download them now?$\r$\n$\r$\nRequired Files: ${MISSINGFILES}" IDYES Done + Quit + + done: + +FunctionEnd + +Function CheckCVSDownload + + StrCmp ${MISSINGFILES} "" done + + SendMessage ${TEMP3} ${WM_SETTEXT} 0 "STR:Downloading CVS client files..." + + !insertmacro checkFileDownload "$EXEDIR" "cvs95.exe" + !insertmacro checkFileDownload "$SYSDIR" "msvcr70.dll" + !insertmacro checkFileDownload "$SYSDIR" "msvcp70.dll" + !insertmacro checkFileDownload "$EXEDIR" "pserver_protocol.dll" + + done: + +FunctionEnd + +Function CheckCVSData + + IfFileExists "${NSISPATH}\CVS\Root" datainstalled + + IfFileExists "${NSISPATH}\Bin\InstallCVSData.exe" +3 + MessageBox MB_OK|MB_ICONSTOP "CVS Data Setup not found." + Quit + + SetDetailsPrint listonly + DetailPrint "Installing CVS data..." + SetDetailsPrint none + Exec "${NSISPATH}\Bin\InstallCVSData.exe" + + datainstalled: + +FunctionEnd + +Function UpdateMethod + + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "io.ini" + +FunctionEnd + +##################################################################### +# Update (Installer Section) + +Section "" + + StrCpy ${NSISPATH} "$EXEDIR\.." + + FindWindow ${TEMP3} "#32770" "" $HWNDPARENT + GetDlgItem ${TEMP3} ${TEMP3} 1111 + + !insertmacro MUI_INSTALLOPTIONS_READ ${TEMP1} "io.ini" "Field 2" "State" + StrCmp ${TEMP1} "1" "" CVS + + # Check for a new release + + SetDetailsPrint listonly + + SendMessage ${TEMP3} ${WM_SETTEXT} 0 "STR:Checking for a new NSIS release..." + + nsExec::ExecToStack '"${NSISPATH}\makensis.exe" "/version"' + Pop ${TEMP1} + + StrCmp ${TEMP1} "error" "" +3 + MessageBox MB_OK|MB_ICONSTOP "Can't get NSIS version." + Quit + + Pop ${TEMP1} + DetailPrint "Your NSIS version: ${TEMP1}" + DetailPrint "" + + StrCpy ${TEMP2} ${TEMP1} "" -5 + StrCmp ${TEMP2} "(CVS)" "" NoCVSVersion + + StrLen ${TEMP2} ${TEMP1} + IntOp ${TEMP2} ${TEMP2} - 6 + StrCpy ${TEMP1} ${TEMP1} ${TEMP2} + StrCpy ${TEMP2} 1 + + DetailPrint "NOTE: You are using a development version of NSIS." + DetailPrint "To get the latest files, use NSIS Update to download the development files." + DetailPrint "" + + Goto CheckUpdate + + NoCVSVersion: + + StrCpy ${TEMP2} 0 + + CheckUpdate: + + DetailPrint "Checking for a new release..." + DetailPrint "" + + NSISdl::download_quiet "http://nsis.sourceforge.net/update.php?version=${TEMP1}&cvs=${TEMP2}" "$PLUGINSDIR\Update" + Pop ${TEMP1} + + StrCmp ${TEMP1} "success" ReadVersion + MessageBox MB_OK|MB_ICONSTOP "Download failed: ${TEMP1}." + Quit + + ReadVersion: + + FileOpen ${TEMP1} "$PLUGINSDIR\Update" r + FileRead ${TEMP1} ${TEMP2} + FileClose ${TEMP1} + + StrCmp ${TEMP2} "" "" +3 + MessageBox MB_OK|MB_ICONSTOP "Invalid version data." + Quit + + StrCpy ${TEMP1} ${TEMP2} 1 + StrCpy ${TEMP2} ${TEMP2} "" 2 + + SendMessage ${TEMP3} ${WM_SETTEXT} 0 "STR:Task completed." + + StrCmp ${TEMP1} "1" "" +3 + DetailPrint "A new stable release is available: ${TEMP2}" + Goto UpdateMsg + + StrCmp ${TEMP1} "2" "" +3 + DetailPrint "A new preview release is available: ${TEMP2}" + Goto UpdateMsg + + DetailPrint "No new release is available. Check again later." + + Goto done + + UpdateMsg: + + MessageBox MB_YESNO|MB_ICONQUESTION "A new release is available. Would you like to go to the download page?" IDNO done + + SetDetailsPrint none + ExecShell "open" "http://sourceforge.net/project/showfiles.php?group_id=22049" + Goto done + + CVS: + + # CVS Update + + SetDetailsPrint none + + SetOutPath ${NSISPATH} + + Call CheckCVSAccess + Call CheckCVSFiles + Call CheckCVSDownload + Call CheckCVSData + + SetDetailsPrint listonly + + SendMessage ${TEMP3} ${WM_SETTEXT} 0 "STR:Updating your NSIS files..." + + DetailPrint "Initializing CVS Update..." + + !insertmacro MUI_INSTALLOPTIONS_READ ${TEMP1} "io.ini" "Field 3" "State" + StrCmp ${TEMP1} "1" "" CleanCVSUpdate + + # Normal update + + nsExec::ExecToLog '"$EXEDIR\cvs95.exe" -q -z3 update -d -P' + Pop ${TEMP1} + Goto CheckCVSReturn + + CleanCVSUpdate: + + # Clean copy + + nsExec::ExecToLog '"$EXEDIR\cvs95.exe" -q -z3 update -C -d -P' + Pop ${TEMP1} + + CheckCVSReturn: + + StrCmp ${TEMP1} "error" "" +3 + MessageBox MB_OK|MB_ICONSTOP "Can't execute CVS client." + Quit + + SendMessage ${TEMP3} ${WM_SETTEXT} 0 "STR:Task completed." + + done: + + SetDetailsPrint none + +SectionEnd \ No newline at end of file diff --git a/Contrib/NSIS Update/Resources/BIN/bzip2.exe b/Contrib/NSIS Update/Resources/BIN/bzip2.exe new file mode 100644 index 0000000000000000000000000000000000000000..95d05c5f5d250a293b6bf06b33ab26208889e26c GIT binary patch literal 73728 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 K82CSlf&T<@)nD!a literal 0 HcmV?d00001 diff --git a/Contrib/NSIS Update/Resources/GUI/NSISUpdate.exe b/Contrib/NSIS Update/Resources/GUI/NSISUpdate.exe new file mode 100644 index 0000000000000000000000000000000000000000..1d424781e3dc143e4679d2c94576615c50c8e3d3 GIT binary patch literal 6144 zcmeHLU2GIp6h5=<(t-Xhq$?GxPN5;h(9+OWtF*9fcV!#4uy#wg3bZV{LwD+Shs;i; zO(5AyA;yX}l|&O06?yT=Clm4Kp%Q{fLW0HskHjaNpkhM6|M9zbX4~1)7BHBg_B3bC zJ-_#yGxy$|+qUP%D2Ir0frdeJ5|n|5Kj(j3fV$|>Pm1Wn#plaU3W4+G9dRWk?bFm= zEz&PVBgv$yOM7HV8%Rn@Qu1yKN&RX}t|}~CQelNI>ss}B*OP7IcHF`Fz_=gusny-% zJ)i|E4vaqw`p%{;oVF{`IP;mAVbDhu5OS#}XP_~oyF$f6zOcwF(q&4&SPII<65~DQ z*kPJ53F`-kAf6TjH2_XLMuu7}*AaC{L@_q@5LJk5aF0Mj?0G^}>GGfseLhQ)<;QZK zDgtAGM6|m~i$(MZdc^D?;5IYz^dS2x(~Mq$2~`7`eF0;p!9z4rrKPkeM7&lAXbG?g zXaf)LhE1?Ayl*;i!#PszAz@&7x{wdzC14G=D0%3_OBjxNE5yorf#~MthbC@bSmk8G zQ!d&*diBs%*Ql?cv(g1^@yL%T$zOap!I+PHF27#p_v@uKH#&_0(Qr$M*J-$GK_**a zQZupl&_S0_d~D*VmkhxvA?i@R!Rh207#wP3BBz#b6tcl&31r997}ea^a7NDy8t!Vu zI?i;RadIJNOjCQ9z#DZ3*weih1{=bsBZd*>JC6Vll&cz)g-IUTAce7#?l(f{zDa7&0!6*0Heh25|9QY`>6k zF=$+h*MjfMv6!`t5iF*HF%FaIb8?%}Mm7W7`kXvlO9`L&Qgk6?xc$)gIWb+&j+%+? zFY!7$!-kvK%n8IZ+%619>q_vfF~Y{haJ=5-p>UrPKEYdqoZJmi!l@Lb2SE^H0se;_ zz|UZsmHo&{v-qlVq7}dbAcO0mZvzhiKLdUZ{1*5Mkl>R9-3bf;KVUMzS&0+=*a(>m z{AHVL8T=&h6E;~bWFq*JHrYm&lZ^*A1^-0e2gx_6=s``5%Bd8s7BP6+`u5(_AMw1_qYev7Ytt1nQqzABbT5S2JWax&Hi=SVNJ?gp=im1Ioa-+^Ce zNU+o6>V8v1v}0NyR8#orbcCXsEGIkEmV_cF@pHbD+UER{;(N zpe2%w%2?l9v52LOL=94NBnrc=q1KS}f~=(!HOY)Qzda>uQfpF|wY`z3ELBP!SdB`O z#b@8_zF1~$@$d_e`>F#1IgwAP^_wuAS{|`=vKw;t9tT0$ni&ICK;H*tYi9zKt)I)F zD(E#(5E}@z7#~HVU=#77DKDKv&b|k;!L(=8(rBA8eYw`?8qT&A8Lp z>^oYp?rr>-7e;m-_s)Gbo;DMmwk3BO{B9dB@Y}X2@aK{TU!{O0!qcXR%qv+Ng-8O% zNu~t;B=X|P-a!W77i8lS{NwtbbXt!KV3XxAGw(buzx%w?G#nIZ6@7|J5EQs_wkC9zB(+jkT>&fb!eG*guIM*Aq_`}xf>$0rA-m4zvP4Ez;@1Cd}tL9<)bCw#+9+f~Z(jRl`8%TwI{vH%(^&peza=d4a z%IFPxj70P}L_?Iqe=;>ZXM6;j_W%BG_?v6Vj5gajgOGgB&bMBjo?+Cm0)5*>Kf}RXF9B4W zLM6AZmrU;X2UV~PZ>m%%p|Gu=(|U7m#^-Q-nyY5^8!EuvpJ!%m!fnrCqIEdaL~_oO zV_F;z)>9>Yg)@J_B3V~(- literal 0 HcmV?d00001 diff --git a/Contrib/NSIS Update/Resources/GUI/io.ini b/Contrib/NSIS Update/Resources/GUI/io.ini new file mode 100644 index 00000000..7eef2a37 --- /dev/null +++ b/Contrib/NSIS Update/Resources/GUI/io.ini @@ -0,0 +1,31 @@ +[Settings] +NumFields=4 +[Field 1] +Type=Label +Text=Welcome to NSIS Update. How would you like to update your NSIS files? +Left=0 +Right=-1 +Top=0 +Bottom=8 +[Field 2] +Type=RadioButton +Text=Check for a new tested release +Left=20 +Right=-1 +Top=30 +Bottom=38 +State=1 +[Field 3] +Type=RadioButton +Text=Download the latest untested development files, merge your changes +Left=20 +Right=-1 +Top=59 +Bottom=67 +[Field 4] +Type=RadioButton +Text=Download the latest untested development files, clean copy +Left=20 +Right=-1 +Top=88 +Bottom=96 \ No newline at end of file diff --git a/Examples/cvsdata.nsi b/Examples/cvsdata.nsi index 787b7acc..eb59679a 100644 --- a/Examples/cvsdata.nsi +++ b/Examples/cvsdata.nsi @@ -69,6 +69,10 @@ Section "" !insertmacro CVSDATA "Contrib\Makensisw\jnetlib" !insertmacro CVSDATA "Contrib\Modern UI" !insertmacro CVSDATA "Contrib\Modern UI\Language files" +!insertmacro CVSDATA "Contrib\NSIS Update" +!insertmacro CVSDATA "Contrib\NSIS Update\Resources" +!insertmacro CVSDATA "Contrib\NSIS Update\Resources\BIN" +!insertmacro CVSDATA "Contrib\NSIS Update\Resources\GUI" !insertmacro CVSDATA "Contrib\nsExec" !insertmacro CVSDATA "Contrib\NSISdl" !insertmacro CVSDATA "Contrib\Splash"