aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorKonstantin Podsvirov <konstantin@podsvirov.pro>2017-10-05 21:24:32 +0300
committerKonstantin Podsvirov <konstantin@podsvirov.pro>2017-10-05 21:24:32 +0300
commit6f763c5ca830c9e461e106c63959a60d33eb5e5b (patch)
tree83b31ab9de2ac3e0bff6a783642b417a201bf643 /scripts
parentd8507cd159f8de6ae174cae9894c926f75fe50d7 (diff)
downloadvcpkg-6f763c5ca830c9e461e106c63959a60d33eb5e5b.tar.gz
vcpkg-6f763c5ca830c9e461e106c63959a60d33eb5e5b.zip
[vcpkg-export-ifw] Maintenance Tool
Install maintenance tool and create Start menu shortcuts to manage, update and uninstall packages.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/ifw/maintenance.qs46
1 files changed, 46 insertions, 0 deletions
diff --git a/scripts/ifw/maintenance.qs b/scripts/ifw/maintenance.qs
new file mode 100644
index 000000000..5cdad7225
--- /dev/null
+++ b/scripts/ifw/maintenance.qs
@@ -0,0 +1,46 @@
+// constructor
+function Component()
+{
+ installer.installationStarted.connect(this, Component.prototype.onInstallationStarted);
+}
+
+Component.prototype.onInstallationStarted = function()
+{
+ if (component.updateRequested() || component.installationRequested()) {
+ if (installer.value("os") == "win")
+ component.installerbaseBinaryPath = "@TargetDir@/tempmaintenancetool.exe";
+ installer.setInstallerBaseBinary(component.installerbaseBinaryPath);
+ }
+}
+
+Component.prototype.createOperations = function()
+{
+ // call the base createOperations
+ component.createOperations();
+
+ // only for windows online installer
+ if ( installer.value("os") == "win" && !installer.isOfflineOnly() )
+ {
+ // shortcut to add or remove packages
+ component.addOperation( "CreateShortcut",
+ "@TargetDir@/maintenancetool.exe",
+ "@StartMenuDir@/Manage vcpkg.lnk",
+ " --manage-packages");
+ // shortcut to update packages
+ component.addOperation( "CreateShortcut",
+ "@TargetDir@/maintenancetool.exe",
+ "@StartMenuDir@/Update vcpkg.lnk",
+ " --updater");
+ }
+
+ // create uninstall link only for windows
+ if (installer.value("os") == "win")
+ {
+ // shortcut to uninstaller
+ component.addOperation( "CreateShortcut",
+ "@TargetDir@/maintenancetool.exe",
+ "@StartMenuDir@/Uninstall vcpkg.lnk",
+ " --uninstall");
+ }
+}
+