diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-01-24 23:47:10 +0100 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-01-24 23:50:31 +0100 |
commit | f014a5c6d7dd4835b4e773605809b7ca44496a48 (patch) | |
tree | 8b5e4b512d3f3c821674c91a78729896425e4469 /tools/wixl/builder.vala | |
parent | edbb02bf4df830eaa02ae0aa3a3db32d89a375e3 (diff) | |
download | msitools-f014a5c6d7dd4835b4e773605809b7ca44496a48.tar.gz msitools-f014a5c6d7dd4835b4e773605809b7ca44496a48.tar.xz msitools-f014a5c6d7dd4835b4e773605809b7ca44496a48.zip |
wixl: visit RegistrySearch and populate db
Diffstat (limited to 'tools/wixl/builder.vala')
-rw-r--r-- | tools/wixl/builder.vala | 22 |
1 files changed, 22 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 { |