diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-01-03 12:32:54 +0100 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-01-06 16:38:26 +0100 |
commit | d4caf80554c05c9acc9e29ae8ab399b49fd0e06d (patch) | |
tree | ebcc0eb98e005af0aaa5730f5d7c8a7639b203f3 /src/builder.vala | |
parent | 886d64819cb0b686b097b9a05cec9dd9f566e37a (diff) | |
download | msitools-d4caf80554c05c9acc9e29ae8ab399b49fd0e06d.tar.gz msitools-d4caf80554c05c9acc9e29ae8ab399b49fd0e06d.tar.xz msitools-d4caf80554c05c9acc9e29ae8ab399b49fd0e06d.zip |
Populate Directory table
Diffstat (limited to 'src/builder.vala')
-rw-r--r-- | src/builder.vala | 12 |
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 |