summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2013-01-24 23:45:09 +0100
committerMarc-André Lureau <marcandre.lureau@gmail.com>2013-01-24 23:50:31 +0100
commitedbb02bf4df830eaa02ae0aa3a3db32d89a375e3 (patch)
tree425394d9a3a9335d5fd74d3c37100008f1ce84d1 /tools
parent4493f859d73d45b54f9861b558570dc8993e31e9 (diff)
downloadmsitools-edbb02bf4df830eaa02ae0aa3a3db32d89a375e3.zip
msitools-edbb02bf4df830eaa02ae0aa3a3db32d89a375e3.tar.gz
msitools-edbb02bf4df830eaa02ae0aa3a3db32d89a375e3.tar.xz
wixl: populate CustomAction of type EXE_PROPERTY
Diffstat (limited to 'tools')
-rw-r--r--tools/wixl/builder.vala42
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);
}
}