dev 2.1.153 → 2.1.154

Sign up to get free protection for your applications and to get access to all the features.
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