diff options
author | Tim Jenssen <tim.jenssen@nokia.com> | 2011-08-16 16:48:34 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@nokia.com> | 2011-08-17 14:56:45 +0200 |
commit | fd13e13652f0d1f9b5be59170db5d4f3e08b3fc0 (patch) | |
tree | 86bd69e45b9ab38dd376c3aae3db77eaa79b1ee5 | |
parent | 507d1e2e12e4a2686dbc308f455c457274372245 (diff) |
improve create-test-installer.bat
Change-Id: I56ff70468e767f9ba306aa83571db79e4cd167aa
Reviewed-on: http://codereview.qt.nokia.com/3046
Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
-rw-r--r-- | examples/testapp/config/config.xml | 11 | ||||
-rw-r--r-- | installerbuilder/BatchSubstitute.bat | 20 | ||||
-rw-r--r-- | installerbuilder/auto_installations_script.qs | 77 | ||||
-rw-r--r-- | installerbuilder/create-test-installer.bat | 71 |
4 files changed, 168 insertions, 11 deletions
diff --git a/examples/testapp/config/config.xml b/examples/testapp/config/config.xml index c42bae91d..efc49fea6 100644 --- a/examples/testapp/config/config.xml +++ b/examples/testapp/config/config.xml @@ -10,20 +10,11 @@ <Icon>qticon</Icon> <Watermark>watermark.png</Watermark> <UninstallerName>TestAppUninstaller</UninstallerName> -<!-- <RemoteRepositories> + <RemoteRepositories> <Repository> <Url>http://www.xxxx.com/repository</Url> </Repository> </RemoteRepositories> ---> - <PublicKey> - -----BEGIN PUBLIC KEY----- - MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDzdb8ti9Ss5kmEY5rGf2HFEsj0 - W6dXOXRIO4W3XXr37Rzc8JI4UMZd6lEcxF9mdnoqOOyhHQABI8/CB2t9HTsZPRPC - TCq43QLMfVMgI6A5Cgetv6osvZFgNG3nFAlRkLHw2gLO/zxoblY0wPq5p4xmYRh4 - f/YjsgYeA2v9V9FBAQIDAQAB - -----END PUBLIC KEY----- - </PublicKey> <!-- @homeDir@ and @rootDir@ are some of the supported vars --> <TargetDir>@rootDir@/testinstall</TargetDir> diff --git a/installerbuilder/BatchSubstitute.bat b/installerbuilder/BatchSubstitute.bat new file mode 100644 index 000000000..99bffdcb0 --- /dev/null +++ b/installerbuilder/BatchSubstitute.bat @@ -0,0 +1,20 @@ +@echo off +REM -- Prepare the Command Processor -- +SETLOCAL ENABLEEXTENSIONS +SETLOCAL DISABLEDELAYEDEXPANSION + +::BatchSubstitude - parses a File line by line and replaces a substring" +::syntax: BatchSubstitude.bat OldStr NewStr File +:: OldStr [in] - string to be replaced +:: NewStr [in] - string to replace with +:: File [in] - file to be parsed +:$changed 20100115 +:$source http://www.dostips.com +if "%~1"=="" findstr "^::" "%~f0"&GOTO:EOF +for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do ( + set "line=%%B" + if defined line ( + call set "line=echo.%%line:%~1=%~2%%" + for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X + ) ELSE echo. +) diff --git a/installerbuilder/auto_installations_script.qs b/installerbuilder/auto_installations_script.qs new file mode 100644 index 000000000..35960c3b5 --- /dev/null +++ b/installerbuilder/auto_installations_script.qs @@ -0,0 +1,77 @@ +var installerTargetDirectory="c:\\auto-test-installation"; + +function Controller() +{ + installer.autoRejectMessageBoxes; + installer.setMessageBoxAutomaticAnswer( "OverwriteTargetDirectory", QMessageBox.Yes); + //maybe we want something like this + //installer.execute("D:\\cleanup_directory.bat", new Array(installerTargetDirectory)); + installer.setMessageBoxAutomaticAnswer( "stopProcessesForUpdates", QMessageBox.Ignore); +} + + +Controller.prototype.IntroductionPageCallback = function() +{ + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.TargetDirectoryPageCallback = function() +{ + var page = gui.pageWidgetByObjectName("TargetDirectoryPage"); + page.TargetDirectoryLineEdit.setText(installerTargetDirectory); + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.ComponentSelectionPageCallback = function() +{ + var page = gui.pageWidgetByObjectName("ComponentSelectionPage"); + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.LicenseAgreementPageCallback = function() +{ + var page = gui.pageWidgetByObjectName("LicenseAgreementPage"); + page.AcceptLicenseRadioButton.setChecked( true); + gui.clickButton(buttons.NextButton); +} + +////in the current installer we don't have this +//Controller.prototype.DynamicQtGuiPageCallback = function() +//{ +// var page = gui.pageWidgetByObjectName("DynamicQtGuiPage"); +// page.checkBoxLib.setChecked( false); +// gui.clickButton(buttons.NextButton); +//} + +////in the current installer we don't have this +//Controller.prototype.DynamicErrorPageCallback = function() +//{ +// var page = gui.pageWidgetByObjectName("DynamicErrorPage"); +// page.checkBoxMakeSure.setChecked( true); +// gui.clickButton(buttons.NextButton); +//} + +Controller.prototype.StartMenuDirectoryPageCallback = function() +{ + var page = gui.pageWidgetByObjectName("StartMenuDirectoryPage"); + //page.LineEdit.text = "test"; + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.ReadyForInstallationPageCallback = function() +{ + gui.clickButton(buttons.NextButton); +} + + +Controller.prototype.PerformInstallationPageCallback = function() +{ + var page = gui.pageWidgetByObjectName("PerformInstallationPage"); + gui.clickButton(buttons.NextButton); +} + +Controller.prototype.FinishedPageCallback = function() +{ + var page = gui.pageWidgetByObjectName("FinishedPage"); + gui.clickButton(buttons.FinishButton); +} diff --git a/installerbuilder/create-test-installer.bat b/installerbuilder/create-test-installer.bat index 3367b4e4d..146779997 100644 --- a/installerbuilder/create-test-installer.bat +++ b/installerbuilder/create-test-installer.bat @@ -1 +1,70 @@ -bin\binarycreator -t bin\installerbase.exe -v -p ..\examples\testapp\packages -c ..\examples\testapp\config --offline-only bin\test-installer.exe com.nokia.testapp +IF "%1" EQU "" ( + set OFFLINE_INSTALLER=true + set ONLINE_INSTALLER=true + set REPOGEN=true + set TEST_ONLINE_INSTALLER=false + set TEST_OFFLINE_INSTALLER=false +) else ( + set OFFLINE_INSTALLER=false + set ONLINE_INSTALLER=false + set REPOGEN=false + set TEST_ONLINE_INSTALLER=false + set TEST_OFFLINE_INSTALLER=false +) + +for %%i in (%1,%2,%3,%4,%5,%6,%7,%8,%9) DO ( + IF "%%i" EQU "offline" ( + set OFFLINE_INSTALLER=true + ) + IF "%%i" EQU "online" ( + set ONLINE_INSTALLER=true + ) + IF "%%i" EQU "repogen" ( + set REPOGEN=true + ) + IF "%%i" EQU "test_online" ( + set TEST_ONLINE_INSTALLER=true + ) + IF "%%i" EQU "test_offline" ( + set TEST_OFFLINE_INSTALLER=true + ) +) + +set AUTO_INSTALLATION_SCRIPT=--script %CD%\auto_installations_script.qs + +set LOCAL_REPOSITORY_PATH=file:///%CD%\bin\repository +set LOCAL_REPOSITORY_PATH=%LOCAL_REPOSITORY_PATH:\=/% + +call BatchSubstitute.bat http://www.xxxx.com/repository %LOCAL_REPOSITORY_PATH% ..\examples\testapp\config\config.xml > ..\examples\testapp\config\config.xml_new + +copy /Y ..\examples\testapp\config\config.xml ..\examples\testapp\config\config.xml_old +move /Y ..\examples\testapp\config\config.xml_new ..\examples\testapp\config\config.xml + +IF "%OFFLINE_INSTALLER%" EQU "true" ( + echo create offline installer + bin\binarycreator -t bin\installerbase.exe -v -p ..\examples\testapp\packages -c ..\examples\testapp\config --offline-only bin\test-installer-offline.exe com.nokia.testapp + IF errorlevel 1 pause ELSE echo ...done +) + +IF "%ONLINE_INSTALLER%" EQU "true" ( + echo create online installer + bin\binarycreator -t bin\installerbase.exe -v -n -p ..\examples\testapp\packages -c ..\examples\testapp\config bin\test-installer-online.exe com.nokia.testapp + IF errorlevel 1 pause ELSE echo ...done +) + +IF "%REPOGEN%" EQU "true" ( + echo create online repository + IF exist bin\repository rmdir /S /Q bin\repository + bin\repogen.exe -p ..\examples\testapp\packages -c ..\examples\testapp\config bin\repository com.nokia.testapp + IF errorlevel 1 pause ELSE echo ...done +) + +IF "%TEST_OFFLINE_INSTALLER%" EQU "true" ( + bin\test-installer-offline.exe --verbose %AUTO_INSTALLATION_SCRIPT% +) + +IF "%TEST_ONLINE_INSTALLER%" EQU "true" ( + bin\test-installer-online.exe --verbose %AUTO_INSTALLATION_SCRIPT% +) + +copy /Y ..\examples\testapp\config\config.xml_old ..\examples\testapp\config\config.xml |