diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-01-24 23:45:09 +0100 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-01-24 23:50:31 +0100 |
commit | edbb02bf4df830eaa02ae0aa3a3db32d89a375e3 (patch) | |
tree | 425394d9a3a9335d5fd74d3c37100008f1ce84d1 /tools/wixl | |
parent | 4493f859d73d45b54f9861b558570dc8993e31e9 (diff) | |
download | msitools-edbb02bf4df830eaa02ae0aa3a3db32d89a375e3.tar.gz msitools-edbb02bf4df830eaa02ae0aa3a3db32d89a375e3.tar.xz msitools-edbb02bf4df830eaa02ae0aa3a3db32d89a375e3.zip |
wixl: populate CustomAction of type EXE_PROPERTY
Diffstat (limited to 'tools/wixl')
-rw-r--r-- | tools/wixl/builder.vala | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tools/wixl/builder.vala b/tools/wixl/builder.vala index d30c7a2..b8c63c1 100644 --- a/tools/wixl/builder.vala +++ b/tools/wixl/builder.vala @@ -921,10 +921,52 @@ namespace Wixl { public override void visit_registry_search (WixRegistrySearch search) throws GLib.Error { + [Flags] + enum CustomActionType { + DLL_BINARY = 1, + EXE_BINARY = 2, + JSCRIPT_BINARY = 5, + VBSCRIPT_BINARY = 6, + DLL_FILE = 17, + EXE_FILE = 18, + ERROR = 19, + JSCRIPT_FILE = 21, + VBSCRIPT_FILE = 22, + EXE_DIR = 34, + SET_DIR = 35, + JSCRIPT_SEQUENCE = 37, + VBSCRIPT_SEQUENCE = 38, + EXE_PROPERTY = 50, + SET_PROPERTY = 51, + JSCRIPT_PROPERTY = 53, + VBSCRIPT_PROPERTY = 54, + // return processing + CONTINUE = 0x40, + ASYNC = 0x80, + // scheduling + FIRST_SEQUENCE = 0x100, + ONCE_PER_PROCESS = 0x200, + CLIENT_REPEAT = 0x300, + // in-script + IN_SCRIPT = 0x400, + ROLLBACK = 0x100, + COMMIT = 0x200, + NO_IMPERSONATE = 0x800, + TS_AWARE = 0x4000, } public override void visit_custom_action (WixCustomAction action) throws GLib.Error { + // FIXME: so many missing things here... + var type = CustomActionType.EXE_PROPERTY; + + if (action.Return == "ignore") + type |= CustomActionType.CONTINUE; + if (action.Execute == "deferred") + type |= CustomActionType.IN_SCRIPT; + if (!parse_yesno (action.Impersonate)) + type |= CustomActionType.NO_IMPERSONATE; + db.table_custom_action.add (action.Id, type, action.Property, action.ExeCommand); } } |