in lib/omnibus/packagers/msi.rb [398:439]
def write_source_file
paths = []
install_dir = project.install_dir.split("/")[1..-1].join("/")
Pathname.new(install_dir).ascend do |path|
paths << path.to_s
end
hierarchy = paths.reverse.inject({}) do |hash, path|
hash[File.basename(path)] = path.gsub(/[^[:alnum:]]/, "").upcase + "LOCATION"
hash
end
hierarchy[hierarchy.keys.last] = "PROJECTLOCATION"
wix_install_dir = if hierarchy.size > 1
hierarchy.to_a[-2][1]
else
"WINDOWSVOLUME"
end
render_template(resource_path("source.wxs.erb"),
destination: "#{staging_dir}/source.wxs",
variables: {
name: project.package_name,
friendly_name: project.friendly_name,
maintainer: project.maintainer,
hierarchy: hierarchy,
fastmsi: fast_msi,
wix_install_dir: wix_install_dir,
})
end