Skip to content

Commit

Permalink
installer/windows: batch file improvements (#3441)
Browse files Browse the repository at this point in the history
  • Loading branch information
bryanchriswhite authored and kaloyan-raev committed Jan 3, 2020
1 parent 0cc7056 commit 3257907
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 6 deletions.
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ node('node') {

unstash "storagenode-binaries"

bat 'installer\\windows\\build.bat'
bat 'installer\\windows\\buildrelease.bat'

stash name: "storagenode-installer", includes: "release/**/storagenode*.msi"

Expand Down
1 change: 1 addition & 0 deletions installer/windows/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
/obj/
*/obj/
/packages/

*.exe
*.msi
*.wixobj
Expand Down
22 changes: 17 additions & 5 deletions installer/windows/build.bat
Original file line number Diff line number Diff line change
@@ -1,15 +1,27 @@
rem set the TAG env var from the release dir
for /f %%i in ('dir /B release') do set TAG=%%i
@echo off

rem count # of args
set argC=0
for %%x in (%*) do Set /A argC+=1

if not "%argC%"=="3" (
echo usage: %~nx0 ^<storagenode.exe input path^> ^<storagenode-updater.exe input path^> ^<msi output path^>
exit /B 1
)

rem copy the storagenode binaries to the installer project
copy release\%TAG%\storagenode_windows_amd64.exe installer\windows\storagenode.exe
copy release\%TAG%\storagenode-updater_windows_amd64.exe installer\windows\storagenode-updater.exe
copy %1 installer\windows\storagenode.exe
copy %2 installer\windows\storagenode-updater.exe

rem install NuGet packages
nuget install installer\windows\StorjTests\packages.config -o installer\windows\packages

rem build the installer
msbuild installer\windows\windows.sln /t:Build /p:Configuration=Release

rem cleanup copied binaries
del installer\windows\storagenode.exe
del installer\windows\storagenode-updater.exe

rem copy the MSI to the release dir
copy installer\windows\bin\Release\storagenode.msi release\%TAG%\storagenode_windows_amd64.msi
copy installer\windows\bin\Release\storagenode.msi %3
6 changes: 6 additions & 0 deletions installer/windows/buildrelease.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@echo off

rem build msi installer for each release directory
for /d %%d in (release\*) do (
call %~dp0build.bat %%d\storagenode_windows_amd64.exe %%d\storagenode-updater_windows_amd64.exe %%d\storagenode_windows_amd64.msi
)
30 changes: 30 additions & 0 deletions installer/windows/install.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
@echo off
setlocal enabledelayedexpansion

rem NB: This script requires administrative privileges.
rem It can't prompt for escalation if the `/q` option is used.

rem count # of args
set argC=0
for %%x in (%*) do Set /A argC+=1

if not %argC% gtr 0 (
echo usage: %~nx0 ^[\q^] "<msi path (using '\' separators)>" ^[PROPERTY="value" ...^]
exit /B 1
)

set interactivity=/passive /qb
if not %1==/q set msipath=%1
if %1==/q set msipath=%2
set props=STORJ_WALLET="0x0000000000000000000000000000000000000000" STORJ_EMAIL="user@mail.example" STORJ_PUBLIC_ADDRESS="127.0.0.1:10000"
for %%x in (%*) do (
if not %%x==%msipath% if not %%x==/q set props=!props! %%x
if %%x==/q set interactivity=/quiet /qn
)

rem uninstall existing storagenode product
echo uninstalling storagenode
call %~dp0uninstall.bat %msipath%

echo installing storagenode from %msipath%
msiexec /i %msipath% %interactivity% /norestart /log %~dp1install.log %props%
7 changes: 7 additions & 0 deletions installer/windows/installrelease.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@echo off

rem NB: only installs from *first* release directory
for /d %%d in (release\*) do (
call %~dp0install.bat %%d\storagenode_windows_amd64.msi
goto :EOF
)
14 changes: 14 additions & 0 deletions installer/windows/uninstall.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
@echo off
setlocal

rem count # of args
set argC=0
for %%x in (%*) do Set /A argC+=1

if not %argC%==1 (
echo usage: %~nx0 "<msi path (using '\' separators)>"
exit /B 1
)

set msipath=%1
msiexec /uninstall %msipath%

0 comments on commit 3257907

Please sign in to comment.