dev 2.1.153 → 2.1.154

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/lib/apps/git.rb +207 -208
  3. data/lib/apps/msbuild.rb +90 -90
  4. data/lib/apps/nbench.rb +2 -1
  5. data/lib/apps/nuget.rb +57 -59
  6. data/lib/apps/svn.rb +137 -143
  7. data/lib/apps/wix.rb +47 -50
  8. data/lib/apps/xcodebuild.rb +13 -11
  9. data/lib/apps/zip.rb +25 -25
  10. data/lib/apps.rb +3 -1
  11. data/lib/base/array.rb +66 -64
  12. data/lib/base/command.rb +237 -238
  13. data/lib/base/dir.rb +73 -76
  14. data/lib/base/environment.rb +94 -99
  15. data/lib/base/file.rb +35 -33
  16. data/lib/base/gemspec.rb +47 -45
  17. data/lib/base/giturl.rb +88 -90
  18. data/lib/base/hash.rb +20 -15
  19. data/lib/base/history.rb +36 -33
  20. data/lib/base/internet.rb +22 -20
  21. data/lib/base/project.rb +410 -423
  22. data/lib/base/projects.rb +231 -246
  23. data/lib/base/source.rb +22 -20
  24. data/lib/base/string.rb +6 -4
  25. data/lib/base/text.rb +16 -14
  26. data/lib/base/timeout.rb +29 -28
  27. data/lib/base/timer.rb +23 -19
  28. data/lib/base/version.rb +68 -72
  29. data/lib/base.rb +5 -3
  30. data/lib/commands.rb +47 -43
  31. data/lib/dev.config.rb +3 -2
  32. data/lib/dev.rb +65 -66
  33. data/lib/tasks/add.rb +34 -40
  34. data/lib/tasks/analyze.rb +17 -15
  35. data/lib/tasks/build.rb +101 -103
  36. data/lib/tasks/clean.rb +6 -4
  37. data/lib/tasks/clobber.rb +20 -18
  38. data/lib/tasks/commit.rb +42 -44
  39. data/lib/tasks/default.rb +41 -39
  40. data/lib/tasks/doc.rb +10 -8
  41. data/lib/tasks/info.rb +8 -7
  42. data/lib/tasks/package.rb +23 -20
  43. data/lib/tasks/publish.rb +20 -25
  44. data/lib/tasks/pull.rb +9 -9
  45. data/lib/tasks/push.rb +11 -13
  46. data/lib/tasks/setup.rb +180 -183
  47. data/lib/tasks/test.rb +121 -107
  48. data/lib/tasks/update.rb +13 -11
  49. data/lib/tasks.rb +38 -42
  50. metadata +7 -9
  51. data/bin/dev +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 977eea438a22e9adf6c3be95bd36d09f17923bb293fc77c9f2815a6510c5618b
4
- data.tar.gz: 3b8c4d4224efb98b6c01781e752419b5316cb375841d33d65fe86c914ddf681b
3
+ metadata.gz: e19e6acb617e668310c66b684c48f8fd5a7a6b101071db20fa7dc6a322ad2ed8
4
+ data.tar.gz: b171cf51d74c88493f9b0bb80b03b3b6e94703284643bcb6d5ef5b723c7a291d
5
5
  SHA512:
6
- metadata.gz: a49a4139d3f7c62c684cdc932a16f94107126082e6502a92b8cf7d55b4ec918ccfbe7cd47fc875f1e0f68d2cbda43e01dd9ebd24a0e271c637cae7d99e0b067f
7
- data.tar.gz: e7c78a1d282f9215ba024405ef5d302c7d1af8d75383916ca63af19bc565549ce3633bd079e02fc29ed9d90fd73dc3adfcebacf4ed57367d85bed7fae6d3239a
6
+ metadata.gz: d2493f738a5b16231dbf2f48cdcb207987685f835a83a029650775057ece7e5527a72ebd9c3ba23d1b68ae8275f76bf57c246c384e4147d8c35ee5331f8e986d
7
+ data.tar.gz: b9058483a84a0bf7177e8127e28e671a4ffa05b187e4003e75f780f22d6f0245bcdc12ac6fc686dbf9c8d8c92b25ec1ba640b22ed555056fe732e7aee8d0e132
data/lib/apps/git.rb CHANGED
@@ -1,216 +1,215 @@
1
+ # frozen_string_literal: true
2
+
1
3
  if defined?(DEBUG)
2
- puts DELIMITER
3
- puts __FILE__
4
- puts
5
- puts 'git not found' if(!Command.executes?('git --version'))
6
- puts
4
+ puts DELIMITER
5
+ puts __FILE__
6
+ puts
7
+ puts "git not found" unless Command.executes?("git --version")
8
+ puts
7
9
  end
8
10
 
9
- require 'tmpdir'
10
- require 'rake'
11
+ require "tmpdir"
12
+ require "rake"
11
13
 
12
14
  class Git
13
- def self.branch directory=''
14
- directory=Dir.pwd if directory.length == 0
15
- Dir.chdir(directory) do
16
- begin
17
- `git branch`.scan(/\* ([.\w-]+)/)[0][0] if(File.exists?('.git'))
18
- rescue
19
- ''
20
- end
15
+ def self.branch(directory = "")
16
+ directory = Dir.pwd if directory.length.zero?
17
+ Dir.chdir(directory) do
18
+ `git branch`.scan(/\* ([.\w-]+)/)[0][0] if File.exist?(".git")
19
+ rescue StandardError
20
+ ""
21
+ end
22
+ end
23
+
24
+ def self.url
25
+ url = ""
26
+ url = `git config --get remote.origin.url` if File.exist?(".git")
27
+ end
28
+
29
+ @@master_url = ""
30
+ def self.master_url
31
+ @@master_url
32
+ end
33
+
34
+ def self.master_url=(url)
35
+ @@master_url = url
36
+ end
37
+
38
+ def self.is_fork?
39
+ master_url != url
40
+ end
41
+
42
+ def self.user_email
43
+ email = ""
44
+ begin
45
+ email = `git config --list`.scan(/user.email=([\d\w.@\-+]+)/)[0][0]
46
+ rescue StandardError
47
+ email = ""
48
+ end
49
+ email
50
+ end
51
+
52
+ def self.user_name
53
+ name = ""
54
+ begin
55
+ name = `git config --list`.scan(/user.name=([\d\w.@\-+]+)/)[0][0]
56
+ rescue StandardError
57
+ name = ""
58
+ end
59
+ name
60
+ end
61
+
62
+ def self.remote_origin(directory = "")
63
+ url = ""
64
+ directory = Dir.pwd if directory.length.zero?
65
+ Dir.chdir(directory) do
66
+ url = `git remote show origin`.scan(%r{Fetch URL: ([.\-:/\w\d]+)})[0][0] if File.exist?(".git")
67
+ rescue StandardError
68
+ url = ""
69
+ end
70
+ url
71
+ end
72
+
73
+ def self.has_changes?(directory = "")
74
+ directory = Dir.pwd if directory.length.zero?
75
+ Dir.chdir(directory) do
76
+ if File.exist?(".git")
77
+ return true if `git status`.include?("modified:")
78
+ return true if `git status`.include?("new file:")
79
+ end
80
+ end
81
+ false
82
+ end
83
+
84
+ def self.init(directory = "")
85
+ directory = Dir.pwd if directory.length.zero?
86
+ parent = File.dirname(directory)
87
+ FileUtils.mkdir_p parent if !File.exist?(parent) && parent.length.positive?
88
+ Dir.chdir(parent) do
89
+ `git init --bare`
90
+ end
91
+ end
92
+
93
+ def self.tag(directory, version)
94
+ directory = Dir.pwd if directory.length.zero?
95
+ Dir.chdir(directory) do
96
+ # `git pull`
97
+ tags = `git tag`
98
+ unless tags.include?(version)
99
+ puts "tagging branch"
100
+ puts `git tag #{version} -m'#{version}'`
101
+ puts "committing"
102
+ puts `git commit -m'#{version}'`
103
+ # puts 'pushing'
104
+ # puts `git push --tags`
105
+ # puts `git push`
106
+ end
107
+ end
108
+ end
109
+
110
+ def self.publish(destination, source_dir, source_filelist, tag)
111
+ puts "publish to #{destination}"
112
+ tmp_dir = Dir.mktmpdir
113
+ FileUtils.mkdir_p(File.dirname(tmp_dir)) unless File.exist?(File.dirname(tmp_dir))
114
+ FileUtils.rm_r(tmp_dir) if File.exist?(tmp_dir)
115
+ puts `git clone #{destination} #{tmp_dir}`
116
+
117
+ puts "checking if tag #{tag} exists..."
118
+ Dir.chdir(tmp_dir) do
119
+ tags = `git tag`
120
+ if tags.include?(tag)
121
+ puts "tag #{tag} already exists."
122
+ else
123
+ puts "tag #{tag} does not exist."
124
+ Dir.chdir(source_dir) do
125
+ source_filelist.each do |f|
126
+ dest = "#{tmp_dir}/#{f}"
127
+ FileUtils.mkdir_p(File.dirname(dest)) unless File.exist?(File.dirname(dest))
128
+ FileUtils.cp(f, dest)
129
+ puts "copying file #{f} for publishing"
130
+ end
21
131
  end
22
- end
23
- def self.url
24
- url=''
25
- url=`git config --get remote.origin.url` if(File.exists?('.git'))
26
- end
27
-
28
- @@master_url=''
29
- def self.master_url
30
- @@master_url
31
- end
32
- def self.master_url=(url)
33
- @@master_url=url
34
- end
35
- def self.is_fork?
36
- self.master_url != self.url
37
- end
38
-
39
- def self.user_email
40
- email=''
41
- begin
42
- email=`git config --list`.scan(/user.email=([\d\w.@\-\+]+)/)[0][0]
43
- rescue
44
- email=''
132
+ puts "git add -A"
133
+ puts `git add -A`
134
+ puts 'git commit -m"add"'
135
+ puts `git commit -m"add"`
136
+ Git.tag tmp_dir, tag
137
+ end
138
+ end
139
+
140
+ FileUtils.rm_r tmp_dir
141
+ end
142
+
143
+ def self.clone_and_reset(uri, directory, tagname)
144
+ unless File.exist?(directory)
145
+ `git clone #{uri} #{directory}`
146
+ Dir.chdir(directory) do
147
+ `git reset --hard #{tagname}`
148
+ end
149
+ end
150
+ end
151
+
152
+ def self.latest_tag(directory = "")
153
+ if directory.length.zero?
154
+ Command.output("git describe --abbrev=0 --tags").strip
155
+ # `git describe --abbrev=0 --tags`.strip
156
+ else
157
+ result = ""
158
+ Dir.chdir(directory) do
159
+ result = Command.output("git describe --abbrev=0 --tags").strip
160
+ # result=`git describe --abbrev=0 --tags`.strip
161
+ end
162
+ result
163
+ end
164
+ end
165
+
166
+ def self.copy(src_url, src_directory, branch, target_directory, filelist)
167
+ if !File.exist?(src_directory)
168
+ puts "git clone #{src_url} #{src_directory}"
169
+ # puts `git clone #{src_url} #{src_directory}`
170
+ else
171
+ puts "chdir #{src_directory}"
172
+ Dir.chdir(src_directory) do
173
+ puts "git pull"
174
+ git_pull = Command.new("git pull")
175
+ git_pull[:directory] = src_directory
176
+ git_pull[:timeout] = 30
177
+ git_pull[:ignore_failure] = true
178
+ git_pull.execute
179
+ end
180
+ end
181
+
182
+ puts "chdir #{src_directory}"
183
+ Dir.chdir(src_directory) do
184
+ puts "git checkout #{branch}"
185
+ # puts `git checkout #{branch}`
186
+ filelist.each do |f|
187
+ dest = "#{target_directory}/#{f}"
188
+ FileUtils.mkdir_p File.dirname(dest) unless File.exist? File.dirname(dest)
189
+ puts "copying #{f} to #{dest}"
190
+ FileUtils.cp(f, dest)
191
+ end
192
+ end
193
+ end
194
+
195
+ def self.copy_gsub(url, branch, glob, glob_search, glob_replace, destination_directory)
196
+ temp_dir = Dir.mktmpdir
197
+ begin
198
+ puts `git clone #{url} #{temp_dir}`
199
+ puts "cd #{temp_dir}"
200
+ Dir.chdir(temp_dir) do
201
+ puts `git checkout #{branch}`
202
+ puts "glob #{glob}"
203
+ Dir.glob(glob).each do |f|
204
+ relative_filename = f.gsub(glob_search, glob_replace)
205
+ dest = "#{destination_directory}/#{relative_filename}"
206
+ FileUtils.mkdir_p File.dirname(dest) unless Dir.exist?(File.dirname(dest))
207
+ puts "copying #{f} to #{dest}"
208
+ FileUtils.copy(f, dest)
45
209
  end
46
- email
210
+ end
211
+ ensure
212
+ FileUtils.remove_entry_secure temp_dir
47
213
  end
48
-
49
- def self.user_name
50
- name=''
51
- begin
52
- name=`git config --list`.scan(/user.name=([\d\w.@\-\+]+)/)[0][0]
53
- rescue
54
- name=''
55
- end
56
- name
57
- end
58
-
59
- def self.remote_origin directory=''
60
- url=''
61
- directory=Dir.pwd if directory.length == 0
62
- Dir.chdir(directory) do
63
- begin
64
- url=`git remote show origin`.scan(/Fetch URL: ([\.\-:\/\w\d]+)/)[0][0] if(File.exists?('.git'))
65
- rescue
66
- url=''
67
- end
68
- end
69
- url
70
- end
71
-
72
- def self.has_changes? directory=''
73
- directory=Dir.pwd if directory.length==0
74
- Dir.chdir(directory) do
75
- if(File.exists?('.git'))
76
- return true if `git status`.include?('modified:')
77
- return true if `git status`.include?('new file:')
78
- end
79
- end
80
- false
81
- end
82
-
83
- def self.init directory=''
84
- directory=Dir.pwd if directory.length==0
85
- parent=File.dirname(directory)
86
- FileUtils.mkdir_p parent if !File.exists?(parent) && parent.length > 0
87
- Dir.chdir(parent) do
88
- `git init --bare`
89
-
90
- end
91
- end
92
-
93
- def self.tag directory,version
94
- directory=Dir.pwd if directory.length == 0
95
- Dir.chdir(directory) do
96
- #`git pull`
97
- tags=`git tag`
98
- if(!tags.include?(version))
99
- puts 'tagging branch'
100
- puts `git tag #{version} -m'#{version}'`
101
- puts 'committing'
102
- puts `git commit -m'#{version}'`
103
- #puts 'pushing'
104
- #puts `git push --tags`
105
- #puts `git push`
106
- end
107
- end
108
- end
109
-
110
- def self.publish destination, source_dir, source_filelist, tag
111
- puts "publish to #{destination}"
112
- tmp_dir=Dir.mktmpdir
113
- FileUtils.mkdir_p(File.dirname(tmp_dir)) if(!File.exists?(File.dirname(tmp_dir)))
114
- FileUtils.rm_r(tmp_dir) if File.exists?(tmp_dir)
115
- puts `git clone #{destination} #{tmp_dir}`
116
-
117
- puts "checking if tag #{tag} exists..."
118
- Dir.chdir(tmp_dir) do
119
- tags=`git tag`
120
- if(tags.include?(tag))
121
- puts "tag #{tag} already exists."
122
- else
123
- puts "tag #{tag} does not exist."
124
- Dir.chdir(source_dir) do
125
- source_filelist.each{|f|
126
- dest = tmp_dir + "/" + f
127
- FileUtils.mkdir_p(File.dirname(dest)) if(!File.exists?(File.dirname(dest)))
128
- FileUtils.cp(f,dest);
129
- puts "copying file #{f} for publishing"
130
- }
131
- end
132
- puts 'git add -A'
133
- puts `git add -A`
134
- puts 'git commit -m"add"'
135
- puts `git commit -m"add"`
136
- Git.tag tmp_dir,tag
137
- end
138
- end
139
-
140
- FileUtils.rm_r tmp_dir
141
- end
142
-
143
- def self.clone_and_reset uri, directory, tagname
144
- if(!File.exists?(directory))
145
- `git clone #{uri} #{directory}`
146
- Dir.chdir(directory) do
147
- `git reset --hard #{tagname}`
148
- end
149
- end
150
- end
151
-
152
- def self.latest_tag directory=''
153
- if directory.length==0
154
- Command.output('git describe --abbrev=0 --tags').strip
155
- #`git describe --abbrev=0 --tags`.strip
156
- else
157
- result=''
158
- Dir.chdir(directory) do
159
- result=Command.output('git describe --abbrev=0 --tags').strip
160
- #result=`git describe --abbrev=0 --tags`.strip
161
- end
162
- result
163
- end
164
- end
165
-
166
- def self.copy(src_url,src_directory,branch,target_directory,filelist)
167
- if(!File.exists?(src_directory))
168
- puts "git clone #{src_url} #{src_directory}"
169
- #puts `git clone #{src_url} #{src_directory}`
170
- else
171
- puts "chdir #{src_directory}"
172
- Dir.chdir(src_directory) do
173
- puts "git pull"
174
- git_pull=Command.new('git pull')
175
- git_pull[:directory]=src_directory
176
- git_pull[:timeout] = 30
177
- git_pull[:ignore_failure] =true
178
- git_pull.execute
179
-
180
- end
181
- end
182
-
183
- puts "chdir #{src_directory}"
184
- Dir.chdir(src_directory) do
185
- puts "git checkout #{branch}"
186
- #puts `git checkout #{branch}`
187
- filelist.each{|f|
188
- dest="#{target_directory}/#{f}"
189
- FileUtils.mkdir_p File.dirname(dest) if !File.exists? File.dirname(dest)
190
- puts "copying #{f} to #{dest}"
191
- FileUtils.cp(f,dest)
192
- }
193
- end
194
- end
195
-
196
- def self.copy_gsub(url,branch,glob,glob_search,glob_replace,destination_directory)
197
- temp_dir = Dir.mktmpdir
198
- begin
199
- puts `git clone #{url} #{temp_dir}`
200
- puts "cd #{temp_dir}"
201
- Dir.chdir(temp_dir) do
202
- puts `git checkout #{branch}`
203
- puts "glob #{glob}"
204
- Dir.glob(glob).each{|f|
205
- relative_filename=f.gsub(glob_search,glob_replace)
206
- dest="#{destination_directory}/#{relative_filename}"
207
- FileUtils.mkdir_p File.dirname(dest) if(!Dir.exists?(File.dirname(dest)))
208
- puts "copying #{f} to #{dest}"
209
- FileUtils.copy(f,dest)
210
- }
211
- end
212
- ensure
213
- FileUtils.remove_entry_secure temp_dir
214
- end
215
- end
216
- end
214
+ end
215
+ end
data/lib/apps/msbuild.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  puts DELIMITER if defined?(DEBUG)
2
4
  puts __FILE__ if defined?(DEBUG)
3
5
  # Visual Studio 2008 version 9.0, solution format version 10.00
@@ -7,134 +9,132 @@ puts __FILE__ if defined?(DEBUG)
7
9
  # Visual Studio 2015 version 14.0, solution format version 12.00
8
10
  # Visual Studio 2017 version 15.0
9
11
  # Visual Studio 2019 version 16.0
10
- require 'pp'
11
- class MSBuild < Hash
12
+ require "pp"
12
13
 
13
- #@@ignore_configurations=Array.new
14
+ class MSBuild < Hash
15
+ # @@ignore_configurations=Array.new
14
16
  def initialize
15
- add(:vs9,"C:/Windows/Microsoft.NET/Framework/v3.5/msbuild.exe")
16
- add(:vs10,"C:/Windows/Microsoft.NET/Framework/v4.0.30319/msbuild.exe")
17
- add(:vs12,"C:/Program Files (x86)/MSBuild/12.0/bin/msbuild.exe")
18
- add(:vs14,"C:/Program Files (x86)/MSBuild/14.0/bin/msbuild.exe")
19
- add(:vs15,"C:/Program Files (x86)/MSBuild/15.0/bin/msbuild.exe")
20
- add(:vs15,"C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/MSBuild/15.0/Bin/MSBuild.exe")
21
- if(File.exists?("C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/MSBuild/15.0/Bin/MSBuild.exe"))
22
- add(:vs15,"C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/MSBuild/15.0/Bin/MSBuild.exe")
17
+ add(:vs9, "C:/Windows/Microsoft.NET/Framework/v3.5/msbuild.exe")
18
+ add(:vs10, "C:/Windows/Microsoft.NET/Framework/v4.0.30319/msbuild.exe")
19
+ add(:vs12, "C:/Program Files (x86)/MSBuild/12.0/bin/msbuild.exe")
20
+ add(:vs14, "C:/Program Files (x86)/MSBuild/14.0/bin/msbuild.exe")
21
+ add(:vs15, "C:/Program Files (x86)/MSBuild/15.0/bin/msbuild.exe")
22
+ add(:vs15, "C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/MSBuild/15.0/Bin/MSBuild.exe")
23
+ if File.exist?("C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/MSBuild/15.0/Bin/MSBuild.exe")
24
+ add(:vs15, "C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/MSBuild/15.0/Bin/MSBuild.exe")
23
25
  end
24
- if(File.exists?("C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/MSBuild/Current/Bin/MSBuild.exe"))
25
- add(:vs16,"C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/MSBuild/Current/Bin/MSBuild.exe")
26
+ if File.exist?("C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/MSBuild/Current/Bin/MSBuild.exe")
27
+ add(:vs16, "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/MSBuild/Current/Bin/MSBuild.exe")
26
28
  end
27
- if(File.exists?("C:/Program Files (x86)/Microsoft Visual Studio/2019/Preview/MSBuild/Current/Bin/MSBuild.exe"))
28
- add(:vs16,"C:/Program Files (x86)/Microsoft Visual Studio/2019/Preview/MSBuild/Current/Bin/MSBuild.exe")
29
+ if File.exist?("C:/Program Files (x86)/Microsoft Visual Studio/2019/Preview/MSBuild/Current/Bin/MSBuild.exe")
30
+ add(:vs16, "C:/Program Files (x86)/Microsoft Visual Studio/2019/Preview/MSBuild/Current/Bin/MSBuild.exe")
29
31
  end
30
- if(File.exists?("C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe"))
31
- add(:vs16,"C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe")
32
+ if File.exist?("C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe")
33
+ add(:vs16, "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe")
32
34
  end
33
- if(File.exists?("C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/MSBuild/Current/Bin/MSBuild.exe"))
34
- add(:vs16,"C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/MSBuild/Current/Bin/MSBuild.exe")
35
+ if File.exist?("C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/MSBuild/Current/Bin/MSBuild.exe")
36
+ add(:vs16, "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/MSBuild/Current/Bin/MSBuild.exe")
35
37
  end
36
38
  end
37
39
 
38
- def add(key,name)
39
- if(File.exists?(name))
40
- self[key] = name
41
- end
40
+ def add(key, name)
41
+ self[key] = name if File.exist?(name)
42
42
  end
43
43
 
44
- def self.has_version? version
45
- if(defined?(MSBUILD))
46
- MSBUILD.has_key?(version)
44
+ def self.has_version?(version)
45
+ if defined?(MSBUILD)
46
+ MSBUILD.key?(version)
47
47
  else
48
- msb=MSBuild.new
49
- return msb.has_key? version
48
+ msb = MSBuild.new
49
+ msb.key? version
50
50
  end
51
51
  end
52
52
 
53
53
  def self.in_path?
54
- command=Command.new('msbuild /version')
55
- command[:quiet]=true
56
- command[:ignore_failure]=true
57
- command.execute
58
- return true if(command[:exit_code] == 0)
59
- false
54
+ command = Command.new("msbuild /version")
55
+ command[:quiet] = true
56
+ command[:ignore_failure] = true
57
+ command.execute
58
+ return true if (command[:exit_code]).zero?
59
+
60
+ false
60
61
  end
61
62
 
62
- def self.get_version version
63
+ def self.get_version(version)
63
64
  return "msbuild" if MSBuild.in_path?
64
- if(defined?(MSBUILD))
65
+
66
+ if defined?(MSBUILD)
65
67
  MSBUILD[version]
66
68
  else
67
- msb=MSBuild.new
68
- return msb[version]
69
+ msb = MSBuild.new
70
+ msb[version]
69
71
  end
70
72
  end
71
73
 
72
- def self.get_vs_version(sln_filename)
73
- if(sln_filename.nil?)
74
+ def self.get_vs_version(sln_filename)
75
+ if sln_filename.nil?
74
76
  return :vs16 if has_version? :vs16
75
77
  return :vs15 if has_version? :vs15
78
+
76
79
  return :vs14
77
80
  end
78
- sln_text=File.read(sln_filename,:encoding=>'UTF-8')
79
- return :vs16 if sln_text.include?('Visual Studio Version 16')
80
- return :vs15 if sln_text.include?('VisualStudioVersion = 15.')
81
- return :vs9 if sln_text.include?('Format Version 10.00')
82
- return :vs12 if sln_text.include?('12.0.30723.0')
83
- return :vs12 if sln_text.include?('Visual Studio 2013')
84
- return :vs12 if sln_text.include?('12.0.31101.0')
85
- return :vs14 if sln_text.include?('VisualStudioVersion = 14.0.')
81
+ sln_text = File.read(sln_filename, encoding: "UTF-8")
82
+ return :vs16 if sln_text.include?("Visual Studio Version 16")
83
+ return :vs15 if sln_text.include?("VisualStudioVersion = 15.")
84
+ return :vs9 if sln_text.include?("Format Version 10.00")
85
+ return :vs12 if sln_text.include?("12.0.30723.0")
86
+ return :vs12 if sln_text.include?("Visual Studio 2013")
87
+ return :vs12 if sln_text.include?("12.0.31101.0")
88
+ return :vs14 if sln_text.include?("VisualStudioVersion = 14.0.")
86
89
  return :vs16 if has_version? :vs16
87
90
  return :vs15 if has_version? :vs15
88
- return :vs14
91
+
92
+ :vs14
89
93
  end
90
94
 
91
95
  def self.get_configurations(sln_filename)
92
- configs=Array.new
93
- sln_text=File.read(sln_filename,:encoding=>'UTF-8')
94
- sln_text.scan( /= ([\w]+)\|/ ).each{|m|
95
- c=m.first.to_s
96
+ configs = []
97
+ sln_text = File.read(sln_filename, encoding: "UTF-8")
98
+ sln_text.scan(/= (\w+)\|/).each do |m|
99
+ c = m.first.to_s
96
100
  ignore = false
97
- if(defined?(IGNORE_CONFIGURATIONS))
98
- ignore = true if IGNORE_CONFIGURATIONS.include?(c)
99
- end
100
- if(!ignore)
101
- configs << c if !configs.include?(c)
102
- end
103
- }
104
- return configs
101
+ ignore = true if defined?(IGNORE_CONFIGURATIONS) && IGNORE_CONFIGURATIONS.include?(c)
102
+ configs << c if !ignore && !configs.include?(c)
103
+ end
104
+ configs
105
105
  end
106
106
 
107
- def self.get_platforms(sln_filename)
108
- platforms=Array.new
109
- sln_text=File.read(sln_filename,:encoding=>"UTF-8")
110
- #sln_text.scan( /= [\w]+\|([\w ]+)/ ).each{|m|
111
- sln_text.scan(/\|([\w\d\s]+)\s*=/).each{|m|
112
- p=m.first.to_s.strip
113
- platforms << p if !platforms.include?(p)
114
- }
115
- return platforms
116
- end
107
+ def self.get_platforms(sln_filename)
108
+ platforms = []
109
+ sln_text = File.read(sln_filename, encoding: "UTF-8")
110
+ # sln_text.scan( /= [\w]+\|([\w ]+)/ ).each{|m|
111
+ sln_text.scan(/\|([\w\d\s]+)\s*=/).each do |m|
112
+ p = m.first.to_s.strip
113
+ platforms << p unless platforms.include?(p)
114
+ end
115
+ platforms
116
+ end
117
117
 
118
- def self.get_build_commands sln_filename
119
- build_commands=nil
120
- vs_version=MSBuild.get_vs_version(sln_filename)
121
- puts "vs version for '#{sln_filename}' : #{vs_version}"
122
- if(MSBuild.has_version?(vs_version))
123
- MSBuild.get_configurations(sln_filename).each{ |configuration|
124
- MSBuild.get_platforms(sln_filename).each{|platform|
125
- build_commands=Array.new if build_commands.nil?
126
- msbuild_arg=MSBuild.get_version(vs_version)
127
- msbuild_arg="\"#{MSBuild.get_version(vs_version)}\"" if msbuild_arg.include?(' ')
128
- sln_arg=sln_filename
129
- sln_arg="\"#{sln_filename}\"" if sln_filename.include?(' ')
130
- platform_arg="/p:Platform=#{platform}"
131
- platform_arg="/p:Platform=\"#{platform}\"" if platform.include?(' ')
132
- build_commands << "#{msbuild_arg} #{sln_arg} /p:Configuration=#{configuration} #{platform_arg}"
133
- }
134
- }
118
+ def self.get_build_commands(sln_filename)
119
+ build_commands = nil
120
+ vs_version = MSBuild.get_vs_version(sln_filename)
121
+ puts "vs version for '#{sln_filename}' : #{vs_version}"
122
+ if MSBuild.has_version?(vs_version)
123
+ MSBuild.get_configurations(sln_filename).each do |configuration|
124
+ MSBuild.get_platforms(sln_filename).each do |platform|
125
+ build_commands = [] if build_commands.nil?
126
+ msbuild_arg = MSBuild.get_version(vs_version)
127
+ msbuild_arg = "\"#{MSBuild.get_version(vs_version)}\"" if msbuild_arg.include?(" ")
128
+ sln_arg = sln_filename
129
+ sln_arg = "\"#{sln_filename}\"" if sln_filename.include?(" ")
130
+ platform_arg = "/p:Platform=#{platform}"
131
+ platform_arg = "/p:Platform=\"#{platform}\"" if platform.include?(" ")
132
+ build_commands << "#{msbuild_arg} #{sln_arg} /p:Configuration=#{configuration} #{platform_arg}"
133
+ end
135
134
  end
136
- build_commands
137
135
  end
136
+ build_commands
137
+ end
138
138
  end
139
139
 
140
140
  if defined?(DEBUG)
@@ -143,4 +143,4 @@ if defined?(DEBUG)
143
143
  msb = MSBuild.new
144
144
  pp msb
145
145
  puts
146
- end
146
+ end
data/lib/apps/nbench.rb CHANGED
@@ -1,5 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  #
2
3
  # NuGet packages: NBench, NBench.Runner
3
4
  #
4
5
  # ./packages/NBench.Runner.1.0.1/lib/net45/NBench.Runner.exe
5
- #
6
+ #