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
data/lib/base/projects.rb CHANGED
@@ -1,257 +1,242 @@
1
+ # frozen_string_literal: true
2
+
1
3
  puts DELIMITER if defined?(DEBUG)
2
4
  puts __FILE__ if defined?(DEBUG)
3
5
 
4
- require 'json'
5
- require 'rake'
6
- require_relative('environment.rb')
7
- require_relative('project.rb')
8
- require_relative('../apps/git.rb')
9
- require_relative('../apps/svn.rb')
6
+ require "json"
7
+ require "rake"
8
+ require_relative("environment")
9
+ require_relative("project")
10
+ require_relative("../apps/git")
11
+ require_relative("../apps/svn")
10
12
 
11
13
  class Projects < Hash
12
- attr_accessor :env
13
-
14
- def initialize env=nil
15
- @env=env if env.kind_of?(Environment)
16
- @env=Environment.new if @env.nil?
17
- open
18
- end
19
-
20
- def filename
21
- "#{@env.root_dir}/data/Projects.json"
22
- end
23
-
24
- def current
25
- fullname=Rake.application.original_dir.gsub("#{Environment.default.wrk_dir}/",'')
26
- if(self.has_key? fullname)
27
- self[fullname]
28
- else
29
- project=nil
30
- begin
31
- project=Project.new(Project.get_url,fullname)
32
- rescue
33
- project=nil
34
- end
35
- project
14
+ attr_accessor :env
15
+
16
+ def initialize(env = nil)
17
+ @env = env if env.is_a?(Environment)
18
+ @env = Environment.new if @env.nil?
19
+ open
20
+ end
21
+
22
+ def filename
23
+ "#{@env.root_dir}/data/Projects.json"
24
+ end
25
+
26
+ def current
27
+ fullname = Rake.application.original_dir.gsub("#{Environment.default.wrk_dir}/", "")
28
+ if key? fullname
29
+ self[fullname]
30
+ else
31
+ project = nil
32
+ begin
33
+ project = Project.new(Project.get_url, fullname)
34
+ rescue StandardError
35
+ project = nil
36
36
  end
37
+ project
37
38
  end
38
-
39
- def save
40
- Dir.make File.dirname(filename) if !File.exists? File.dirname(filename)
41
- File.open(filename,'w'){|f|f.write(JSON.pretty_generate(self))}
42
- end
43
-
44
- def open
45
- if File.exists? filename
46
- JSON.parse(IO.read(filename)).each{|k,v|
47
- if(v.kind_of?(Project))
48
- self[k]=v
49
- else
50
- self[k]=Project.new(v)
51
- end
52
- }
53
- #update_state
54
- end
55
- end
56
-
57
- def get_projects value=''
58
- puts "get_projects #{value.to_s}" if @env.debug?
59
- puts "get_project total project count #{self.length}" if @env.debug?
60
- projects=Array.new
61
- filter=''
62
- filter=value.to_s if !value.nil? && value.kind_of?(String)
63
- filter=value[0].to_s if !value.nil? && value.kind_of?(Array) && !value[0].to_s.include?('=')
64
-
65
- puts "get_project filter '#{filter}'" if @env.debug?
66
- self.each{|k,v|
67
- puts " checking project #{k}" if @env.debug?
68
- puts " v.class #{v.class}" if @env.debug?
69
- if(filter.length==0 || k.include?(filter))
70
- if(v.kind_of?(Project))
71
- projects << v
72
- v.env=@env
73
- end
74
- end
75
- }
76
- projects
39
+ end
40
+
41
+ def save
42
+ Dir.make File.dirname(filename) unless File.exist? File.dirname(filename)
43
+ File.open(filename, "w") { |f| f.write(JSON.pretty_generate(self)) }
44
+ end
45
+
46
+ def open
47
+ if File.exist? filename
48
+ JSON.parse(IO.read(filename)).each do |k, v|
49
+ self[k] = if v.is_a?(Project)
50
+ v
51
+ else
52
+ Project.new(v)
53
+ end
54
+ end
55
+ # update_state
77
56
  end
78
-
79
- def add args
80
- url=args[0]
81
- project=Project.new(url)
82
- project[:fullname]=args[1] if args.length > 1
83
- project.set_timeout args[2] if args.length > 2
84
- if(!self.has_key?(project[:fullname]) && project[:fullname].length > 0)
85
- @env.out "adding #{project.fullname}\n"
86
- self[project.fullname]=project
87
- self.save
88
- end
57
+ end
58
+
59
+ def get_projects(value = "")
60
+ puts "get_projects #{value}" if @env.debug?
61
+ puts "get_project total project count #{length}" if @env.debug?
62
+ projects = []
63
+ filter = ""
64
+ filter = value.to_s if !value.nil? && value.is_a?(String)
65
+ filter = value[0].to_s if !value.nil? && value.is_a?(Array) && !value[0].to_s.include?("=")
66
+
67
+ puts "get_project filter '#{filter}'" if @env.debug?
68
+ each do |k, v|
69
+ puts " checking project #{k}" if @env.debug?
70
+ puts " v.class #{v.class}" if @env.debug?
71
+ if (filter.length.zero? || k.include?(filter)) && v.is_a?(Project)
72
+ projects << v
73
+ v.env = @env
74
+ end
89
75
  end
90
-
91
- def remove args
92
- projects=get_projects args
93
- puts "removing #{projects.length} projects..." if @env.debug?
94
- remove_keys=[]
95
- projects.each{|project|
96
- project.clobber
97
- remove_keys << project.fullname
98
- }
99
- remove_keys.each{|key|self.delete(key)}
100
- self.save
101
- return 0
102
- end
103
-
104
- def help args
76
+ projects
77
+ end
78
+
79
+ def add(args)
80
+ url = args[0]
81
+ project = Project.new(url)
82
+ project[:fullname] = args[1] if args.length > 1
83
+ project.set_timeout args[2] if args.length > 2
84
+ if !key?(project[:fullname]) && project[:fullname].length.positive?
85
+ @env.out "adding #{project.fullname}\n"
86
+ self[project.fullname] = project
87
+ save
105
88
  end
106
-
107
- def work args
108
- projects=get_projects args
109
- puts "working #{projects.length} projects..." if @env.debug?
110
- exit_code=0
111
- projects.each{|project|
112
- begin
113
- result=project.work
114
- exit_code=result.exit_code if(result.exit_code!=0)
115
- rescue => error
116
- puts "error raised during work #{project.fullname}"
117
- puts "--------------------------------------------"
118
- puts error
119
- puts "--------------------------------------------"
120
- end
121
- }
122
- exit_code
123
- end
124
-
125
- def info args
126
- projects=get_projects args
127
- puts "collecting info for #{projects.length} projects..." if @env.debug?
128
- exit_code=0
129
- projects.each{|project|
130
- begin
131
- result=project.info
132
- exit_code=result.exit_code if(result.exit_code!=0)
133
- rescue => error
134
- puts "error raised during work #{project.fullname}"
135
- puts "--------------------------------------------"
136
- puts error
137
- puts "--------------------------------------------"
138
- end
139
- }
140
- exit_code
141
- end
142
-
143
- def list args
144
- projects=get_projects args
145
- puts "listing #{projects.length} projects..." if @env.debug?
146
- projects.each{|project|
147
- project.list
148
-
149
- }
150
- return 0
151
- end
152
-
153
- def make args
154
- projects=get_projects args
155
- puts "making #{projects.length} projects..." if @env.debug?
156
- exit_code=0
157
- projects.each{|project|
158
- begin
159
- result=project.make
160
- exit_code=result.exit_code if(result.exit_code!=0)
161
- rescue => error
162
- puts "error raised during make #{project.fullname}"
163
- puts "--------------------------------------------"
164
- puts error
165
- puts "--------------------------------------------"
166
- end
167
- }
168
- exit_code
169
- end
170
-
171
- def clobber args
172
- projects=get_projects args
173
- puts "clobbering #{projects.length} projects..." if @env.debug?
174
- projects.each{|project|
175
- begin
176
- project.clobber
177
- #Dir.remove_empty @env.wrk_dir
178
- rescue => error
179
- puts "error raised during clobber #{project.fullname}"
180
- puts "--------------------------------------------"
181
- puts error
182
- puts "--------------------------------------------"
183
- end
184
- }
89
+ end
90
+
91
+ def remove(args)
92
+ projects = get_projects args
93
+ puts "removing #{projects.length} projects..." if @env.debug?
94
+ remove_keys = []
95
+ projects.each do |project|
96
+ project.clobber
97
+ remove_keys << project.fullname
185
98
  end
186
-
187
- def update args
188
- projects=get_projects args
189
- puts "updating #{projects.length} projects..." if @env.debug?
190
- projects.each{|project|
191
- begin
192
- puts "updating #{project.fullname}" if @env.debug?
193
- result=project.update
194
- exit_code=result.exit_code if(result.exit_code!=0)
195
- rescue => error
196
- puts "error raised during update #{project.fullname}"
197
- puts "--------------------------------------------"
198
- puts error
199
- puts "--------------------------------------------"
200
- end
201
- }
202
- end
203
-
204
- def self.user_projects_filename
205
- FileUtils.mkdir_p("#{Environment.dev_root}/data") if(!File.exists?("#{Environment.dev_root}/data"))
206
- "#{Environment.dev_root}/data/PROJECTS.json"
207
- end
208
-
209
- def self.current
210
- project=nil
211
- url=Git.remote_origin
212
- url=Svn.url if url.length==0
213
- if(Rake.application.original_dir.include?('/wrk/') &&
214
- url.length > 0)
215
- project=Project.new(url)
216
- fullname=Rake.application.original_dir.gsub("#{Environment.dev_root}/wrk/",'')
217
- project[:fullname] = name if(name.length>0 && !name.include?(Environment.dev_root))
218
- if(defined?(PROJECTS))
219
- PROJECTS[name]=project if(!PROJECTS.has_key?(name))
220
- project.each{|k,v|PROJECTS[name][k]=v}
221
- PROJECTS.save
222
- else
223
- project[:fullname]=name
224
- end
225
- end
226
- project
227
- end
228
-
229
- def pull
230
- self.each{|k,v| v.pull if v.respond_to?("pull".to_sym)}
231
- end
232
- def rake
233
- self.each{|k,v| v.rake if v.respond_to?("rake".to_sym)}
234
- end
235
-
236
- def import pattern=''
237
- wrk=@env.wrk_dir
238
- if File.exists?(wrk)
239
- Dir.chdir(wrk) do
240
- puts "scanning #{wrk} for imports..."
241
- Dir.glob('**/rakefile.rb').each{|rakefile|
242
- rakedir=File.dirname(rakefile)
243
- url = Project.get_url rakedir
244
- project = Project.new(Project.get_url(rakedir))
245
- project[:fullname]=rakedir.gsub(@env.wrk_dir,'') if(project.fullname.include?(':'))
246
- if(pattern.length==0 || project.fullname.include?(pattern))
247
- if(project.fullname.length > 0 && !self.has_key?(project.fullname))
248
- puts "importing #{project.fullname}"
249
- self[project.fullname]=project
250
- end
251
- end
252
- }
253
- end
254
- self.save
255
- end
256
- end
257
- end
99
+ remove_keys.each { |key| delete(key) }
100
+ save
101
+ 0
102
+ end
103
+
104
+ def help(args); end
105
+
106
+ def work(args)
107
+ projects = get_projects args
108
+ puts "working #{projects.length} projects..." if @env.debug?
109
+ exit_code = 0
110
+ projects.each do |project|
111
+ result = project.work
112
+ exit_code = result.exit_code if result.exit_code != 0
113
+ rescue StandardError => e
114
+ puts "error raised during work #{project.fullname}"
115
+ puts "--------------------------------------------"
116
+ puts e
117
+ puts "--------------------------------------------"
118
+ end
119
+ exit_code
120
+ end
121
+
122
+ def info(args)
123
+ projects = get_projects args
124
+ puts "collecting info for #{projects.length} projects..." if @env.debug?
125
+ exit_code = 0
126
+ projects.each do |project|
127
+ result = project.info
128
+ exit_code = result.exit_code if result.exit_code != 0
129
+ rescue StandardError => e
130
+ puts "error raised during work #{project.fullname}"
131
+ puts "--------------------------------------------"
132
+ puts e
133
+ puts "--------------------------------------------"
134
+ end
135
+ exit_code
136
+ end
137
+
138
+ def list(args)
139
+ projects = get_projects args
140
+ puts "listing #{projects.length} projects..." if @env.debug?
141
+ projects.each(&:list)
142
+ 0
143
+ end
144
+
145
+ def make(args)
146
+ projects = get_projects args
147
+ puts "making #{projects.length} projects..." if @env.debug?
148
+ exit_code = 0
149
+ projects.each do |project|
150
+ result = project.make
151
+ exit_code = result.exit_code if result.exit_code != 0
152
+ rescue StandardError => e
153
+ puts "error raised during make #{project.fullname}"
154
+ puts "--------------------------------------------"
155
+ puts e
156
+ puts "--------------------------------------------"
157
+ end
158
+ exit_code
159
+ end
160
+
161
+ def clobber(args)
162
+ projects = get_projects args
163
+ puts "clobbering #{projects.length} projects..." if @env.debug?
164
+ projects.each do |project|
165
+ project.clobber
166
+ # Dir.remove_empty @env.wrk_dir
167
+ rescue StandardError => e
168
+ puts "error raised during clobber #{project.fullname}"
169
+ puts "--------------------------------------------"
170
+ puts e
171
+ puts "--------------------------------------------"
172
+ end
173
+ end
174
+
175
+ def update(args)
176
+ projects = get_projects args
177
+ puts "updating #{projects.length} projects..." if @env.debug?
178
+ projects.each do |project|
179
+ puts "updating #{project.fullname}" if @env.debug?
180
+ result = project.update
181
+ exit_code = result.exit_code if result.exit_code != 0
182
+ rescue StandardError => e
183
+ puts "error raised during update #{project.fullname}"
184
+ puts "--------------------------------------------"
185
+ puts e
186
+ puts "--------------------------------------------"
187
+ end
188
+ end
189
+
190
+ def self.user_projects_filename
191
+ FileUtils.mkdir_p("#{Environment.dev_root}/data") unless File.exist?("#{Environment.dev_root}/data")
192
+ "#{Environment.dev_root}/data/PROJECTS.json"
193
+ end
194
+
195
+ def self.current
196
+ project = nil
197
+ url = Git.remote_origin
198
+ url = Svn.url if url.length.zero?
199
+ if Rake.application.original_dir.include?("/wrk/") &&
200
+ url.length.positive?
201
+ project = Project.new(url)
202
+ fullname = Rake.application.original_dir.gsub("#{Environment.dev_root}/wrk/", "")
203
+ project[:fullname] = name if name.length.positive? && !name.include?(Environment.dev_root)
204
+ if defined?(PROJECTS)
205
+ PROJECTS[name] = project unless PROJECTS.key?(name)
206
+ project.each { |k, v| PROJECTS[name][k] = v }
207
+ PROJECTS.save
208
+ else
209
+ project[:fullname] = name
210
+ end
211
+ end
212
+ project
213
+ end
214
+
215
+ def pull
216
+ each { |_k, v| v.pull if v.respond_to?("pull".to_sym) }
217
+ end
218
+
219
+ def rake
220
+ each { |_k, v| v.rake if v.respond_to?("rake".to_sym) }
221
+ end
222
+
223
+ def import(pattern = "")
224
+ wrk = @env.wrk_dir
225
+ if File.exist?(wrk)
226
+ Dir.chdir(wrk) do
227
+ puts "scanning #{wrk} for imports..."
228
+ Dir.glob("**/rakefile.rb").each do |rakefile|
229
+ rakedir = File.dirname(rakefile)
230
+ url = Project.get_url rakedir
231
+ project = Project.new(Project.get_url(rakedir))
232
+ project[:fullname] = rakedir.gsub(@env.wrk_dir, "") if project.fullname.include?(":")
233
+ if (pattern.length.zero? || project.fullname.include?(pattern)) && (project.fullname.length.positive? && !key?(project.fullname))
234
+ puts "importing #{project.fullname}"
235
+ self[project.fullname] = project
236
+ end
237
+ end
238
+ end
239
+ save
240
+ end
241
+ end
242
+ end
data/lib/base/source.rb CHANGED
@@ -1,22 +1,24 @@
1
+ # frozen_string_literal: true
2
+
1
3
  puts __FILE__ if defined?(DEBUG)
2
4
 
3
- SOURCE=FileList.new('LICENSE','README','README.md',"Gemfile")
4
- SOURCE.include('*.{gitignore,yml,gemspec}')
5
- SOURCE.include('**/*.{rb}')
6
- SOURCE.include('**/*.{cs,xaml,resx,settings}')
7
- SOURCE.include('**/*.{c,h}')
8
- SOURCE.include('**/*.{cpp,hpp}')
9
- SOURCE.include('**/*.{swift}')
10
- SOURCE.include('**/*.{xcodeproj,plist,storyboard,json}')
11
- SOURCE.include('**/*.{csproj,sln,nuspec,config,snk}')
12
- SOURCE.include('**/*.{saproj}')
13
- SOURCE.include('**/*.{jpeg,jpg,png,bmp,gif,tif}')
14
- SOURCE.include('**/*.{html,htm}')
15
- SOURCE.include('**/*.{ico}')
16
- SOURCE.include('**/*.{txt}')
17
- SOURCE.include('**/*.{wxs,_wxs}')
18
- SOURCE.exclude('bin','obj','lib')
19
- SOURCE.exclude('**/obj/**/*.*')
20
- SOURCE.exclude('**/bin/**/*.*')
21
- SOURCE.exclude('commit.message')
22
- SOURCE.exclude('rakefile.default')
5
+ SOURCE = FileList.new("LICENSE", "README", "README.md", "Gemfile")
6
+ SOURCE.include("*.{gitignore,yml,gemspec}")
7
+ SOURCE.include("**/*.{rb}")
8
+ SOURCE.include("**/*.{cs,xaml,resx,settings}")
9
+ SOURCE.include("**/*.{c,h}")
10
+ SOURCE.include("**/*.{cpp,hpp}")
11
+ SOURCE.include("**/*.{swift}")
12
+ SOURCE.include("**/*.{xcodeproj,plist,storyboard,json}")
13
+ SOURCE.include("**/*.{csproj,sln,nuspec,config,snk}")
14
+ SOURCE.include("**/*.{saproj}")
15
+ SOURCE.include("**/*.{jpeg,jpg,png,bmp,gif,tif}")
16
+ SOURCE.include("**/*.{html,htm}")
17
+ SOURCE.include("**/*.{ico}")
18
+ SOURCE.include("**/*.{txt}")
19
+ SOURCE.include("**/*.{wxs,_wxs}")
20
+ SOURCE.exclude("bin", "obj", "lib")
21
+ SOURCE.exclude("**/obj/**/*.*")
22
+ SOURCE.exclude("**/bin/**/*.*")
23
+ SOURCE.exclude("commit.message")
24
+ SOURCE.exclude("rakefile.default")
data/lib/base/string.rb CHANGED
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  puts __FILE__ if defined?(DEBUG)
2
4
 
3
5
  class String
4
- def fix(size,padstr=' ')
5
- self[0...size].rjust(size,padstr)
6
- end
7
- end
6
+ def fix(size, padstr = " ")
7
+ self[0...size].rjust(size, padstr)
8
+ end
9
+ end
data/lib/base/text.rb CHANGED
@@ -1,30 +1,32 @@
1
+ # frozen_string_literal: true
2
+
1
3
  puts __FILE__ if defined?(DEBUG)
2
4
 
3
5
  class Text
4
- def self.replace_in_glob(glob,search,replace)
5
- Dir.glob(glob).each{ |f| replace_in_file(f,search,replace) }
6
+ def self.replace_in_glob(glob, search, replace)
7
+ Dir.glob(glob).each { |f| replace_in_file(f, search, replace) }
6
8
  end
7
-
8
- def self.replace_in_file(filename,search,replace)
9
+
10
+ def self.replace_in_file(filename, search, replace)
9
11
  text1 = IO.read(filename)
10
- text2 = text1.gsub(search) { |str| str=replace }
11
- unless text1==text2
12
- File.open(filename,"w") { |f| f.puts text2 }
12
+ text2 = text1.gsub(search) { |_str| str = replace }
13
+ unless text1 == text2
14
+ File.open(filename, "w") { |f| f.puts text2 }
13
15
  return true
14
16
  end
15
17
  false
16
18
  end
17
19
 
18
- def self.copy_if_different(source,destination)
19
- if(!File.exists?(destination))
20
+ def self.copy_if_different(source, destination)
21
+ if !File.exist?(destination)
20
22
  FileUtils.cp source, destination
21
23
  else
22
- source_text=IO.read(source)
23
- destination_text=IO.read(destination)
24
- if(source_text != destination_text)
24
+ source_text = IO.read(source)
25
+ destination_text = IO.read(destination)
26
+ if source_text != destination_text
25
27
  FileUtils.rm destination
26
28
  FileUtils.cp source, destination
27
29
  end
28
30
  end
29
- end
30
- end
31
+ end
32
+ end