summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2013-01-24 23:47:10 +0100
committerMarc-André Lureau <marcandre.lureau@gmail.com>2013-01-24 23:50:31 +0100
commitf014a5c6d7dd4835b4e773605809b7ca44496a48 (patch)
tree8b5e4b512d3f3c821674c91a78729896425e4469 /tools
parentedbb02bf4df830eaa02ae0aa3a3db32d89a375e3 (diff)
downloadmsitools-f014a5c6d7dd4835b4e773605809b7ca44496a48.zip
msitools-f014a5c6d7dd4835b4e773605809b7ca44496a48.tar.gz
msitools-f014a5c6d7dd4835b4e773605809b7ca44496a48.tar.xz
wixl: visit RegistrySearch and populate db
Diffstat (limited to 'tools')
-rw-r--r--tools/wixl/builder.vala22
-rw-r--r--tools/wixl/wix.vala1
2 files changed, 23 insertions, 0 deletions
diff --git a/tools/wixl/builder.vala b/tools/wixl/builder.vala
index b8c63c1..43a8542 100644
--- a/tools/wixl/builder.vala
+++ b/tools/wixl/builder.vala
@@ -919,7 +919,29 @@ namespace Wixl {
db.table_service_install.add(service_install.Id, service_install.Name, service_install.DisplayName, ServiceType, StartType, ErrorControl, service_install.LoadOrderGroup, ServiceDependencies, service_install.Account, service_install.Password, service_install.Arguments, comp.Id, Description);
}
+
+ enum RegistryType {
+ DIRECTORY,
+ FILE,
+ RAW,
+ 64BIT = 0x10;
+
+ public static RegistryType from_string (string s) throws GLib.Error {
+ return enum_from_string<RegistryType> (s);
+ }
+ }
+
public override void visit_registry_search (WixRegistrySearch search) throws GLib.Error {
+ var property = search.parent as WixProperty;
+
+ var root = RegistryRoot.from_string (search.Root.down ());
+ var type = RegistryType.from_string (search.Type.down ());
+ if (parse_yesno (search.Win64))
+ type |= RegistryType.64BIT;
+
+ db.table_app_search.add (property.Id, search.Id);
+ db.table_reg_locator.add (search.Id, root, search.Key, search.Name, type);
+ }
[Flags]
enum CustomActionType {
diff --git a/tools/wixl/wix.vala b/tools/wixl/wix.vala
index 55f3574..dee6947 100644
--- a/tools/wixl/wix.vala
+++ b/tools/wixl/wix.vala
@@ -296,6 +296,7 @@ namespace Wixl {
public string Key { get; set; }
public string Type { get; set; }
public string Name { get; set; }
+ public string Win64 { get; set; }
public override void accept (WixNodeVisitor visitor) throws GLib.Error {
visitor.visit_registry_search (this);