summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@nokia.com>2011-08-16 16:48:34 +0200
committerTim Jenssen <tim.jenssen@nokia.com>2011-08-17 14:56:45 +0200
commitfd13e13652f0d1f9b5be59170db5d4f3e08b3fc0 (patch)
tree86bd69e45b9ab38dd376c3aae3db77eaa79b1ee5
parent507d1e2e12e4a2686dbc308f455c457274372245 (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.xml11
-rw-r--r--installerbuilder/BatchSubstitute.bat20
-rw-r--r--installerbuilder/auto_installations_script.qs77
-rw-r--r--installerbuilder/create-test-installer.bat71
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