summaryrefslogtreecommitdiffstats
path: root/src/builder.vala
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2013-01-03 12:32:54 +0100
committerMarc-André Lureau <marcandre.lureau@gmail.com>2013-01-06 16:38:26 +0100
commitd4caf80554c05c9acc9e29ae8ab399b49fd0e06d (patch)
treeebcc0eb98e005af0aaa5730f5d7c8a7639b203f3 /src/builder.vala
parent886d64819cb0b686b097b9a05cec9dd9f566e37a (diff)
downloadmsitools-d4caf80554c05c9acc9e29ae8ab399b49fd0e06d.tar.gz
msitools-d4caf80554c05c9acc9e29ae8ab399b49fd0e06d.tar.xz
msitools-d4caf80554c05c9acc9e29ae8ab399b49fd0e06d.zip
Populate Directory table
Diffstat (limited to 'src/builder.vala')
-rw-r--r--src/builder.vala12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/builder.vala b/src/builder.vala
index 151c79a..4a50c79 100644
--- a/src/builder.vala
+++ b/src/builder.vala
@@ -43,6 +43,18 @@ namespace Wixl {
public override void visit_media (WixMedia media) throws GLib.Error {
db.table_media.add (media.Id, media.EmbedCab, media.DiskPrompt, "#" + media.Cabinet);
}
+
+ public override void visit_directory (WixDirectory dir) throws GLib.Error {
+ if (dir.parent.get_type () == typeof (WixProduct)) {
+ if (dir.Id != "TARGETDIR")
+ throw new Wixl.Error.FAILED ("Invalid root directory");
+ db.table_directory.add (dir.Id, null, dir.Name);
+ } else if (dir.parent.get_type () == typeof (WixDirectory)) {
+ var parent = dir.parent as WixDirectory;
+ db.table_directory.add (dir.Id, parent.Id, dir.Name);
+ } else
+ warning ("unhandled parent type %s", dir.parent.name);
+ }
}
} // Wixl