wixgem 0.101.0 → 0.102.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 70fff3f2b7853ffbf998291a4f42b17dea04115ed8780547f34d98cc29ed4272
4
- data.tar.gz: 3128cf0f064cb38343715c3800b4314411b67ac81e538ac1d4f92eb334aca71d
3
+ metadata.gz: '08dc56c8d621b528b1cb1ff5c18eec7471636058aef6b6c8f724bb21c1fb0bd7'
4
+ data.tar.gz: 0ad8339d5922e4cc649e201d8e8e8373b3f4944b9a460159645bc00c95e3dfb0
5
5
  SHA512:
6
- metadata.gz: 2d15118a3c65ce4a52f380e37bfb31168292b0b0f0591cfd5961013151af9edab44d33e8d08e03f9bf054bbc732053b125e854d17f871485d08292d4c750d825
7
- data.tar.gz: 7c9e359a26d982dc88293eada688751ad4e3df3d3746f4df44bc1f409fa5cacbb0a2a22c23b931dd40c86b7ad4e8a9f9f07c53939d8702f84b624d167b6769a9
6
+ metadata.gz: 7bd086a6983076b63f6dea5335eaa9b6c59fb98445e152c257d15cd2c795ef5dba8044726577654aa6ff00c2cfc67aa036e3398b8b6c24691535db64a40c5453
7
+ data.tar.gz: 4167b78356007490925eb09e1a08f9218837c575866c1ca68586806762debd9a390e124faf109589895295b40a8654cc949fca386cf0515917c62b7f0aa13157
data/example/example.msi CHANGED
Binary file
data/example/example.msm CHANGED
Binary file
data/lib/user.rb ADDED
@@ -0,0 +1,32 @@
1
+ require 'rexml/document'
2
+ require 'SecureRandom'
3
+
4
+ module Wixgem
5
+
6
+ class User
7
+ def initialize(name, user_hash)
8
+ @user_name = name
9
+ @user_hash = user_hash
10
+ end
11
+ def create(xml_doc)
12
+ wix = REXML::XPath.match(xml_doc, "/Wix")[0]
13
+ wix.add_attribute('xmlns:Util', 'http://schemas.microsoft.com/wix/UtilExtension')
14
+
15
+ match = REXML::XPath.match(xml_doc, "/Wix")
16
+
17
+ fragment = match[0].add_element 'Fragment'
18
+ component_group = fragment.add_element 'ComponentGroup'
19
+ component_group.add_attribute('Id', "cg_#{SecureRandom.uuid.gsub(/-/,'')}")
20
+ component = component_group.add_element 'Component'
21
+ component.add_attribute('Id', "c_#{SecureRandom.uuid.gsub(/-/,'')}")
22
+ component.add_attribute('Directory', 'INSTALLDIR')
23
+
24
+ user_element = component.add_element 'Util:User'
25
+ user_element.add_attribute('Id', "user_#{SecureRandom.uuid.gsub(/-/,'')}")
26
+ user_element.add_attribute('Name', @user_name)
27
+ @user_hash.each { |attrib, value| user_element.add_attribute(attrib.to_s, value) }
28
+
29
+ return xml_doc
30
+ end
31
+ end
32
+ end
data/lib/wixgem.rb CHANGED
@@ -79,7 +79,7 @@ class Wix
79
79
  def self.manage_netframework(xml_doc, input)
80
80
  if(input.key?(:requires_netframework))
81
81
  wix = REXML::XPath.match(xml_doc, "/Wix")[0]
82
- wix.attributes['xmlns:netfx'] = 'https://schemas.microsoft.com/wix/NetFxExtension'
82
+ wix.attributes['xmlns:NetFX'] = 'https://schemas.microsoft.com/wix/NetFxExtension'
83
83
 
84
84
  product = REXML::XPath.match(xml_doc, "/Wix/Product")[0]
85
85
  product.add_element 'PropertyRef', { 'Id' => input[:requires_netframework] }
@@ -221,7 +221,29 @@ class Wix
221
221
 
222
222
  return xml_doc
223
223
  end
224
+
225
+ def self.manage_users(xml_doc,input)
226
+ return xml_doc unless(input.has_key?(:users))
227
+
228
+ input[:users].each do |username, user_hash|
229
+ user = User.new(username, user_hash)
230
+ xml_doc = user.create(xml_doc)
231
+ end
232
+
233
+ return xml_doc
234
+ end
224
235
 
236
+ def self.manage_services(xml_doc,input)
237
+ return xml_doc unless(input.has_key?(:services))
238
+
239
+ input[:services].each do |service_hash|
240
+ service = Service.new(service_hash)
241
+ xml_doc = service.create(xml_doc)
242
+ end
243
+
244
+ return xml_doc
245
+ end
246
+
225
247
  def self.manage_self_register(xml_doc, input)
226
248
  return xml_doc unless(input.has_key?(:com_self_register))
227
249
  input[:com_self_register].each do |file|
@@ -522,8 +544,9 @@ class Wix
522
544
  xml_doc = manage_shortcuts(xml_doc, input)
523
545
  xml_doc = manage_self_register(xml_doc, input)
524
546
  xml_doc = manage_binary_table(xml_doc, input)
525
- xml_doc = manage_associate_extensions(xml_doc, input)
526
- xml_doc = manage_services(xml_doc, input)
547
+ xml_doc = manage_associate_extensions(xml_doc, input)
548
+ xml_doc = manage_services(xml_doc, input)
549
+ xml_doc = manage_users(xml_doc, input)
527
550
 
528
551
  formatter = REXML::Formatters::Pretty.new(2)
529
552
  formatter.compact = true
@@ -542,12 +565,14 @@ class Wix
542
565
  wix_bin_dir = "#{wix_install_path}/tools" unless(Dir.exists?(wix_bin_dir))
543
566
  raise "Unable to locate candle.exe. Expecting to have a sub directory bin or tools in the wix installtion directory: #{wix_install_path}" unless(Dir.exists?(wix_bin_dir))
544
567
 
545
- candle_cmd = Execute.new("\"#{wix_bin_dir}/candle.exe\" -out \"#{wixobj_file}\" \"#{wxs_file}\"", { quiet: true })
568
+
569
+ ext_args = "-ext WixUtilExtension -ext WixNetfxExtension -ext WixUIExtension"
570
+ candle_cmd = Execute.new("\"#{wix_bin_dir}/candle.exe\" #{ext_args} -out \"#{wixobj_file}\" \"#{wxs_file}\"", { quiet: true })
546
571
  candle_cmd.execute
547
572
  log_wix_output(candle_cmd)
548
573
 
549
574
  cmd_args = "-nologo -out \"#{output}\" \"#{wixobj_file}\""
550
- cmd_args = "-ext WixNetfxExtension -ext WixUIExtension -ext WixUtilExtension -cultures:en-us #{cmd_args}"
575
+ cmd_args = "#{ext_args} -cultures:en-us #{cmd_args}"
551
576
  light_cmd = Execute.new("\"#{wix_bin_dir}/light.exe\" #{cmd_args}", { quiet: true })
552
577
  light_cmd.execute
553
578
  log_wix_output(light_cmd)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wixgem
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.101.0
4
+ version: 0.102.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Marshall
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-07 00:00:00.000000000 Z
11
+ date: 2019-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: execute
@@ -143,6 +143,7 @@ files:
143
143
  - lib/service.rb
144
144
  - lib/shortcut.rb
145
145
  - lib/temp_directory.rb
146
+ - lib/user.rb
146
147
  - lib/wixgem.rb
147
148
  homepage: http://rubygems.org/gems/wixgem
148
149
  licenses: