wixgem 0.103.0 → 0.108.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d74b5fb71fcf7c779fa24c77e2d7fa89990f58fe7eebf75c3be102863f4cf80
4
- data.tar.gz: 5b246289c5915cd0a7600cb8ef4c083bd1cf2054db337b022bce4f31b243b30a
3
+ metadata.gz: 80493efcc975680f41a21d0196dedde83e90a2447b1bdf6eebf1ffdb1de1b49d
4
+ data.tar.gz: 7e1508dcaad2346044f97601ea8b754e043fb02fd9e350ad607289063e7660eb
5
5
  SHA512:
6
- metadata.gz: 27ee06f5d4205339dd1d9c48f4f2dccb6fac462f783f7d23940d0c97c058e1c37d6c1a6abcbb89f6503e04cfb59ed7be2d352a089ef5577e85768045cb05ad6e
7
- data.tar.gz: c62f1d23d1e71865e481e61b26714e0644eb6527ed8298e9207eefd38ec9a6e21eff7e4188b2876d90a6a791c2d95d8b204add6a0d2801a24916dce42fbf6552
6
+ metadata.gz: 399c34135782d39b0cb839c308e4acef986d7126701a57d2d1bc02d7118733dc1e7fa5ee98845e0b863856e711a7f9d56e2d16b6866e49fea2df3ab1e2ea18d7
7
+ data.tar.gz: 4644152e7d05ce0919685405043838caedc3f978e985ebcff47e25d739ccbf5197e818fdbbcb0a31b8dd96ef5543e5c35ef59ccf753b137a3ba0e25ab49b4f92
data/example/example.msi CHANGED
Binary file
data/example/example.msm CHANGED
Binary file
data/lib/service.rb CHANGED
@@ -22,19 +22,43 @@ class Service
22
22
  service_exe_element = file_elements[0]
23
23
  service_exe_element.attributes['KeyPath']='yes'
24
24
 
25
- create_service_element(service_exe_element)
25
+ create_service_element(xml_doc, service_exe_element)
26
26
 
27
27
  return xml_doc
28
28
  end
29
29
 
30
30
  private
31
- def create_service_element(service_exe_element)
31
+ def create_service_element(xml_doc, service_exe_element)
32
32
  parent_element = service_exe_element.parent
33
33
 
34
34
  service = @hash[:service]
35
35
  service_control = {}
36
36
  service_control = @hash[:service_control] if(@hash.has_key?(:service))
37
37
 
38
+ if(service.key?(:logonasservice))
39
+ raise ':logonasservice requires an :account element' unless(service.key?(:account))
40
+
41
+ wix = REXML::XPath.match(xml_doc, "/Wix")[0]
42
+ wix.add_attribute('xmlns:Util', 'http://schemas.microsoft.com/wix/UtilExtension')
43
+
44
+ user_element = parent_element.add_element 'Util:User'
45
+
46
+ account = service[:account].gsub(/\\/, '/')
47
+ if(account.include?('/'))
48
+ words = account.split('/')
49
+ user_element.add_attribute('Domain', words[0])
50
+
51
+ account = words[1]
52
+ end
53
+
54
+ user_element.attributes['Id'] = "logon_as_service_#{SecureRandom.uuid.gsub(/-/,'')}"
55
+ user_element.add_attribute('Name', account)
56
+ user_element.add_attribute('LogonAsService', service[:logonasservice])
57
+ user_element.add_attribute('CreateUser', 'no')
58
+ user_element.add_attribute('UpdateIfExists', 'yes')
59
+
60
+ service.delete(:logonasservice)
61
+ end
38
62
  service_element = parent_element.add_element('ServiceInstall')
39
63
 
40
64
  service_element.attributes['Id'] = "Service_#{SecureRandom.uuid.gsub(/-/,'')}"
data/lib/wixgem.rb CHANGED
@@ -9,7 +9,6 @@ require_relative 'custom_action.rb'
9
9
  require_relative 'temp_directory.rb'
10
10
  require_relative 'associate_extension.rb'
11
11
  require_relative 'service.rb'
12
- require_relative 'user.rb'
13
12
 
14
13
  # Editor for wix Files WixEdit: http://http://wixedit.sourceforge.net/
15
14
  # Full list of Wix editors : http://robmensching.com/blog/posts/2007/11/20/wix-editors/
@@ -223,17 +222,6 @@ class Wix
223
222
  return xml_doc
224
223
  end
225
224
 
226
- def self.manage_users(xml_doc,input)
227
- return xml_doc unless(input.has_key?(:users))
228
-
229
- input[:users].each do |username, user_hash|
230
- user = User.new(username, user_hash)
231
- xml_doc = user.create(xml_doc)
232
- end
233
-
234
- return xml_doc
235
- end
236
-
237
225
  def self.manage_services(xml_doc,input)
238
226
  return xml_doc unless(input.has_key?(:services))
239
227
 
@@ -293,43 +281,43 @@ class Wix
293
281
  end
294
282
 
295
283
  def self.copy_install_files(directory, input)
296
- files = files(input)
284
+ files = files(input)
297
285
 
298
- missing_files = []
299
- files.each do |file|
300
- if(File.file?(file))
286
+ missing_files = []
287
+ files.each do |file|
288
+ if(File.exists?(file))
301
289
  install_path = file
302
290
  if(input.has_key?(:modify_file_paths))
303
291
  input[:modify_file_paths].each { |regex, replacement_string| install_path = install_path.gsub(regex, replacement_string) }
304
292
  end
305
- raise "Invalid relative installation path: #{install_path}" if(install_path.include?(':'))
293
+ raise "Invalid relative installation path: #{install_path}" if(install_path.include?(':'))
306
294
 
307
295
  install_path = "#{directory}/#{install_path}"
308
- FileUtils.mkpath(File.dirname(install_path)) unless(Dir.exists?(File.dirname(install_path)))
309
- FileUtils.cp(file, install_path, { preserve: true })
310
- elsif(!File.exists?(file))
311
- missing_files.insert(missing_files.length, file)
312
- end
296
+ FileUtils.mkpath(File.dirname(install_path)) unless(Dir.exists?(File.dirname(install_path)))
297
+ FileUtils.cp(file, install_path, preserve: true)
298
+ elsif(!File.exists?(file))
299
+ missing_files.insert(missing_files.length, file)
313
300
  end
301
+ end
314
302
 
315
303
  if(@debug)
316
- if(files.length > 0)
317
- max_path = files.max { |a, b| a.length <=> b.length }
318
- columen_size = max_path.length + 10
319
- end
304
+ if(files.length > 0)
305
+ max_path = files.max { |a, b| a.length <=> b.length }
306
+ columen_size = max_path.length + 10
307
+ end
320
308
 
321
- ingore_files = self.ignore_files(input)
322
- if(input.has_key?(:ignore_files))
323
- @logger << "------------------------------------ ignoring files -----------------------------------" unless(@logger.nil?)
324
- input[:ignore_files].each { |file| @logger << file }
325
- end
309
+ ingore_files = self.ignore_files(input)
310
+ if(input.has_key?(:ignore_files))
311
+ @logger << "------------------------------------ ignoring files -----------------------------------" unless(@logger.nil?)
312
+ input[:ignore_files].each { |file| @logger << file }
313
+ end
326
314
 
327
- @logger << "------------------------------------ Installation Paths -----------------------------------" unless(@logger.nil?)
328
- @logger << "%-#{columen_size}s %s\n" % ['File path', 'Installation Path'] unless(@logger.nil?)
329
- files.reject! { |f| ingore_files.include?(f) }
315
+ @logger << "------------------------------------ Installation Paths -----------------------------------" unless(@logger.nil?)
316
+ @logger << "%-#{columen_size}s %s\n" % ['File path', 'Installation Path'] unless(@logger.nil?)
317
+ files.reject! { |f| ingore_files.include?(f) }
330
318
 
331
- files.each do |file|
332
- if(File.file?(file))
319
+ files.each do |file|
320
+ if(File.exists?(file))
333
321
  install_path = file
334
322
  if(input.has_key?(:modify_file_paths))
335
323
  input[:modify_file_paths].each { |regex, replacement_string| install_path = install_path.gsub(regex, replacement_string) }
@@ -337,22 +325,22 @@ class Wix
337
325
  @logger << "%-#{columen_size}s %s\n" % [file, install_path] unless(@logger.nil?)
338
326
  end
339
327
  end
340
- @logger << "-------------------------------------------------------------------------------------------" unless(@logger.nil?)
341
- end
328
+ @logger << "-------------------------------------------------------------------------------------------" unless(@logger.nil?)
329
+ end
342
330
 
343
- raise 'No files were given to wixgem' if(files.length == 0)
331
+ raise 'No files were given to wixgem' if(files.length == 0)
344
332
 
345
- if(missing_files.length > 0)
346
- missing_files_str = ''
347
- missing_files.each { |f|
348
- if(missing_files_str.empty?)
349
- missing_files_str = f
350
- else
351
- missing_files_str = "#{missing_files_str}, #{f}"
352
- end
353
- }
354
- raise "Wixgem missing files: #{missing_files_str}"
355
- end
333
+ if(missing_files.length > 0)
334
+ missing_files_str = ''
335
+ missing_files.each { |f|
336
+ if(missing_files_str.empty?)
337
+ missing_files_str = f
338
+ else
339
+ missing_files_str = "#{missing_files_str}, #{f}"
340
+ end
341
+ }
342
+ raise "Wixgem missing files: #{missing_files_str}"
343
+ end
356
344
  end
357
345
 
358
346
  def self.modify_binary_files(input)
@@ -547,7 +535,6 @@ class Wix
547
535
  xml_doc = manage_binary_table(xml_doc, input)
548
536
  xml_doc = manage_associate_extensions(xml_doc, input)
549
537
  xml_doc = manage_services(xml_doc, input)
550
- xml_doc = manage_users(xml_doc, input)
551
538
 
552
539
  formatter = REXML::Formatters::Pretty.new(2)
553
540
  formatter.compact = true
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.103.0
4
+ version: 0.108.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Marshall
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-17 00:00:00.000000000 Z
11
+ date: 2021-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: execute
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: dev
70
+ name: raykit
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
@@ -124,7 +124,7 @@ dependencies:
124
124
  version: '0'
125
125
  description: Simple Ruby interface to facilitate creating and compiling windows installation
126
126
  files with the Wix Toolset.
127
- email:
127
+ email:
128
128
  executables: []
129
129
  extensions: []
130
130
  extra_rdoc_files: []
@@ -143,13 +143,12 @@ files:
143
143
  - lib/service.rb
144
144
  - lib/shortcut.rb
145
145
  - lib/temp_directory.rb
146
- - lib/user.rb
147
146
  - lib/wixgem.rb
148
147
  homepage: http://rubygems.org/gems/wixgem
149
148
  licenses:
150
149
  - Apache 2.0
151
150
  metadata: {}
152
- post_install_message:
151
+ post_install_message:
153
152
  rdoc_options: []
154
153
  require_paths:
155
154
  - lib
@@ -164,8 +163,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
163
  - !ruby/object:Gem::Version
165
164
  version: '0'
166
165
  requirements: []
167
- rubygems_version: 3.0.3
168
- signing_key:
166
+ rubygems_version: 3.2.3
167
+ signing_key:
169
168
  specification_version: 4
170
169
  summary: Simple Ruby interface to facilitate working with Wix Toolset
171
170
  test_files: []
data/lib/user.rb DELETED
@@ -1,32 +0,0 @@
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