dev 1.0.146 → 1.0.147

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.
data/lib/dev/Array.rb ADDED
@@ -0,0 +1,17 @@
1
+ class Array
2
+ # remove all auto generated entries
3
+ def strip_auto_entries
4
+ keep=Array.new
5
+ puts_debug "Array.strip_auto_entries"
6
+ self.each { |e|
7
+ if(!e.nil?)
8
+ h=nil
9
+ h=e if e.kind_of?(Hash)
10
+ h=Dev::Environment.s_to_hash(e)
11
+ keep << e if(!h.nil? && (!h.has_key?(:auto) || !h[:auto]))
12
+ end
13
+ }
14
+ self.clear
15
+ keep.each{|e| self << e}
16
+ end
17
+ end
data/lib/dev/Commands.rb CHANGED
@@ -1,129 +1,38 @@
1
- require_relative 'cmd/Compile.rb'
1
+ ["Compile","Replace","Setup","Test","Commit","Info","Update","Pull"].each{ |f| require_relative("cmd/#{f}.rb") }
2
+
2
3
  module Dev
3
4
  class Commands < Hash
4
5
 
5
6
  def initialize
7
+ self[:setup]=Dev::Cmd::Setup.new
8
+ self[:replace]=Dev::Cmd::Replace.new
9
+ self[:compile]=Dev::Cmd::Compile.new
10
+ self[:test]=Dev::Cmd::Test.new
11
+ self[:commit]=Dev::Cmd::Commit.new
12
+ self[:update]=Dev::Cmd::Update.new
13
+ self[:pull]=Dev::Cmd::Pull.new
6
14
  refresh
7
15
  end
8
16
 
9
17
  def refresh
10
18
  puts_debug "Dev::Command.refresh"
11
- self.delete :setup if self.has_key? :setup
12
- #self.delete :compile if self.has_key? :compile
13
- ["add","pull","setup","compile","test","features","commit","update"].each { |key|
14
- if self.has_key?(key.to_sym)
15
- puts_debug "CMD has key #{key}"
16
- else
17
- value=get_default_value(key.to_sym)
18
- self[key.to_sym]=value if !value.nil?
19
- puts_debug "CMD[#{(key.to_sym).to_s}]=#{value.to_s}" if !value.nil?
20
- puts_debug "default value for #{key} was nil"
21
- end
22
- }
23
- end
24
-
25
- def get_default_value(key)
26
- return get_default_value_setup if key==:setup
27
- return get_default_value_commit if key==:commit
28
- return get_default_value_test if key==:test
29
- return Dev::Cmd::Compile.get_auto_compile_directives if key==:compile
30
- return get_default_value_update if key==:update
31
- return get_default_value_pull if key==:pull
32
- nil
33
- end
34
-
35
- def get_default_value_commit
36
- array=Array.new
37
- array << 'git commit -a -m "rake commit all"' if File.exists?(".git")
38
- array << 'svn commit -m "rake commit all"' if File.exists?(".svn")
39
- array=nil if array.empty?
40
- return array
41
- end
42
-
43
- def get_default_value_update
44
- array=Array.new
45
- array << 'svn update' if File.exists?(".svn")
46
- array=nil if array.empty?
47
- return array
48
- end
49
- def get_default_value_setup
50
- array=Array.new
51
- puts_debug "assigning default values for setup"
52
- #array << "bundle install" if File.exists?("Gemfile")
53
- array << "{ :cmd=> 'bundle install', :capture_output=> false}" if File.exists?("Gemfile") && "#{RUBY_VERSION}">="1.8.7"
54
-
55
- # dep,svn directives
56
- puts_debug "checking for :dep hash...."
57
- dep_hash=DEV.get_value(:dep)
58
- puts_debug "dep_hash is nil" if dep_hash.nil?
59
- unless dep_hash.nil?
60
- puts_debug "dep_hash is not nil"
61
- puts_debug "dep_hash is empty" if dep_hash.empty?
62
- dep_hash.each do |key,value|
63
- puts_debug ":dep[#{key.to_s}]"
64
- if value.kind_of?(Hash)
65
- dep=Dev::Dep.new(value)
66
- dep.setup_commands.each{|cmd| array << cmd}
67
- end
68
- end
69
- end
70
-
71
- puts_debug "mkdir directives..."
72
- if(!Dir.glob("*.csproj").nil? && Dir.glob("*.csproj").length > 0)
73
- array << "<%Dir.mkdir 'bin' unless File.exist?('bin')%>"
74
- array << "<%Dir.mkdir 'bin/Debug' unless File.exist?('bin/Debug')%>"
75
- array << "<%Dir.mkdir 'bin/Release' unless File.exist?('bin/Release')%>"
76
- end
77
- array=nil if array.empty?
78
- return array
79
- end
80
-
81
- def get_default_value_pull
82
- array=Array.new
83
- # dep,svn directives
84
- dep_hash=DEV.get_value("dep")
85
- unless dep_hash.nil?
86
- dep_hash.each do |key,value|
87
- if value.kind_of?(Hash)
88
- dep=Dev::Dep.new(value)
89
- dep.pull_commands.each{|cmd| array << cmd}
90
- #puts_debug "pull array: " + array.to_s
91
- end
92
- end
93
- end
94
- array=nil if array.empty?
95
- return array
96
- end
97
-
98
- def get_default_value_test
99
- puts_debug "Dev::Commands.get_default_value_test"
100
- array=Array.new
101
-
102
-
103
- array << "rspec --pattern='**/*.spec'" if DEV[:file_count].has_key?(:spec) && DEV[:file_count][:spec] > 0
104
-
105
- Dir.glob("*.gemspec").each { |gs|
106
- array << "{cmd: 'gem install ./#{gs.gsub('.gemspec','')}-#{DEV[:version]}.gem', capture_output: true}"
107
- #array << "{cmd: 'gem install ./#{gs.gsub('.gemspec','')}-#{DEV[:version]}.gem', capture_output: false}"
108
- #array << "{:cmd=> 'gem install #{gs.gsub('.gemspec','')}-#{DEV[:version]}.gem', :capture_output=> false}"
109
- #array << "gem install ./#{gs.gsub('.gemspec','')}-#{DEV[:version]}.gem"
110
- } #if DEV[:type]=="gem"
111
-
112
- #if self[:type]=="C#"
113
- Dir.glob("*.{Test.csproj,Features.csproj}").each { |cs|
114
- dll_name="bin/x86/Release/#{File.basename(cs,'.csproj')}.dll"
115
- array << "\"<paths,nunit>\" /nologo #{dll_name} /xml:#{dll_name}.nunit-results.xml" if RUBY_PLATFORM.include?("w32")
116
- array << "mono \"<paths,nunit>\" #{dll_name}" if !RUBY_PLATFORM.include?("w32")
117
- }
118
- #end
119
- return array
19
+ self[:setup].refresh(DEV[:dep]) if self[:setup].respond_to?("refresh")
20
+ self[:replace].refresh(DEV[:dep]) if self[:replace].respond_to?("refresh")
21
+ self[:compile].refresh if self[:compile].respond_to?("refresh")
22
+ self[:test].refresh if self[:test].respond_to?("refresh")
23
+ self[:commit].refresh if self[:commit].respond_to?("refresh")
24
+ self[:update].refresh if self[:update].respond_to?("refresh")
25
+ self[:pull].refresh if self[:pull].respond_to?("refresh")
120
26
  end
121
27
 
28
+ def info; Dev::Cmd::Info.execute; end
122
29
  def setup; execute_method "setup"; end
123
30
  def compile; execute_method "compile"; end
124
31
  def test; execute_method "test"; end
125
32
  def update;execute_method("update");end
126
- def replace; DEV.replace; end
33
+ def replace
34
+ self[:replace].execute if self[:replace].respond_to?("execute")
35
+ end
127
36
 
128
37
  def execute_method(name)
129
38
  string_name=name.to_s
@@ -164,27 +73,22 @@ class Commands < Hash
164
73
  end
165
74
  end
166
75
 
167
- def info
168
- puts "DEV"
169
- Hash.print_hash("",DEV)
170
- puts " "
171
- puts "CMD"
172
- Hash.print_hash("",CMD)
173
- puts " "
174
- end
76
+
77
+
78
+
175
79
 
176
80
  def add
177
- unless self[:src_glob].nil?
81
+ unless DEV[:src_glob].nil?
178
82
  scm = Dev::Scm.new
179
83
  return if scm.scm_type == "none"
180
- if self[:src_glob].kind_of?(Hash)
181
- self[:src_glob].each do |name,value|
84
+ if DEV[:src_glob].kind_of?(Hash)
85
+ DEV[:src_glob].each do |name,value|
182
86
  puts " adding files " + value.to_s
183
87
  scm.add_file_glob(value)
184
88
  end
185
89
  else
186
- puts " adding files " + self[:src_glob].to_s
187
- scm.add_file_glob(self[:src_glob])
90
+ puts " adding files " + DEV[:src_glob].to_s
91
+ scm.add_file_glob(DEV[:src_glob])
188
92
  end
189
93
  end
190
94
  end
data/lib/dev/Dep.rb CHANGED
@@ -22,7 +22,7 @@ module Dev
22
22
  class Dep < Hash
23
23
 
24
24
  # constructor that accepts a hash
25
- def initialize(hash,init_defaults=true)
25
+ def initialize(hash)
26
26
  hash.each { |name,value| self[name]=value }
27
27
  end
28
28
 
@@ -87,8 +87,8 @@ class Dep < Hash
87
87
  unless self[:rake].nil?
88
88
  #array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_dep_dir}', cache:'true'}" unless self.get_value("cache").nil?
89
89
  #array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_dep_dir}'}" if self.get_value("cache").nil?
90
- array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_dep_dir}', cache:'true', capture_output: false}" unless self.get_value("cache").nil?
91
- array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_dep_dir}', capture_output: false}" if self.get_value("cache").nil?
90
+ array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_dep_dir}', cache:'true', capture_output: false, auto: true}" unless self.get_value("cache").nil?
91
+ array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_dep_dir}', capture_output: false, auto: true}" if self.get_value("cache").nil?
92
92
  end
93
93
 
94
94
  return array
data/lib/dev/Deps.rb ADDED
@@ -0,0 +1,30 @@
1
+ module Dev
2
+ class Deps < Hash
3
+ def refresh
4
+ puts_debug "Dev::Project.refresh"
5
+ self.each{ |k,v|
6
+ if !v.nil? && v.kind_of?(Hash)
7
+ v[:dir]=get_dir(v) if !v.has_key?(:dir)
8
+ v[:rev]=get_rev(v) if !v.has_key?(:rev) && !get_rev(v).nil?
9
+ end
10
+ }
11
+ end
12
+
13
+ def get_dir(h)
14
+ uri=Dev::Environment.expand_string_variables(h[:uri])
15
+ uri_words=uri.split('/')
16
+ while(uri_words.length > 3) do
17
+ uri_words.shift
18
+ end
19
+ return uri_words.join('/')
20
+ end
21
+
22
+ def get_rev(h)
23
+ if(h.has_key?(:uri) && h[:uri].include?('@'))
24
+ return h[:uri].split('@')[1]
25
+ end
26
+ nil
27
+ end
28
+
29
+ end # class Deps
30
+ end # module Dev
data/lib/dev/Hash.rb CHANGED
@@ -1,6 +1,9 @@
1
1
  class Hash
2
2
 
3
-
3
+ # remove all auto generated entries
4
+ def strip_auto_entries
5
+ self.each { |k,v| self.delete k if !v.nil? && v.kind_of?(Hash) && v.has_key?(:auto) && v[:auto] }
6
+ end
4
7
 
5
8
  def get_value(key)
6
9
  return Hash.get_hash_value(self,key)
data/lib/dev/Paths.rb ADDED
@@ -0,0 +1,23 @@
1
+ module Dev
2
+ class Paths < Hash
3
+ def initialize
4
+ ["v4.0.30319","v3.5","v3.0","v2.0.50727"].each { |v|
5
+ f="C:/WINDOWS/Microsoft.NET/Framework/#{v}/MSBuild.exe"
6
+ self[:msbuild]=f if File.exists?(f) && self[:msbuild].nil?
7
+ f="C:/WINDOWS/Microsoft.NET/Framework/#{v}/RegAsm.exe"
8
+ self[:regasm]=f if File.exists?(f) && self[:regasm].nil?
9
+ }
10
+
11
+ ["2.6.0.12051","2.5.10.11092"].each{ |v|
12
+ Dir.glob("#{Dev::Environment.dev_root}/dep/*/NUnit/#{v}/bin/nunit-console-x86.exe").each{|f|
13
+ self[:nunit]=f if File.exists?(f) && self[:nunit].nil?
14
+ }
15
+ if( !self.has_key?(:nunit) )
16
+ Dir.glob("#{Dev::Environment.dev_root}/dep/*/NUnit/#{v}/bin/*/nunit-console-x86.exe").each{|f|
17
+ self[:nunit]=f if File.exists?(f) && self[:nunit].nil?
18
+ }
19
+ end
20
+ }
21
+ end
22
+ end # class Paths
23
+ end # module Dev
data/lib/dev/Project.rb CHANGED
@@ -2,17 +2,13 @@ puts_debug "read " + __FILE__.foreground(:green)
2
2
  require 'semver'
3
3
  require 'rake'
4
4
 
5
- UNITTESTS=Array.new
6
5
  module Dev
7
-
8
6
  class Project < Hash
9
7
 
10
- def initialize(hash,init_defaults=true)
11
- hash = Hash.new if hash.nil?
12
- hash = defaults.merge(hash)
13
- puts_debug "initialize, copying hash values"
14
- hash.each { |name,value| self[name]=value } if !hash.nil?
15
- update_default_values if init_defaults
8
+ def initialize
9
+ defaults.each { |name,value| self[name]=value }
10
+ db = Dev::Database.new
11
+ db.set_branch_uri(self[:fullname],self[:scm_uri])
16
12
  end
17
13
 
18
14
  def defaults
@@ -39,38 +35,18 @@ class Project < Hash
39
35
  h[:file_count][ext.to_sym]=count if count > 0
40
36
  }
41
37
 
42
- tmp=get_default_value_paths
43
- h[:paths] = tmp if !tmp.nil?
38
+ h[:paths] = Dev::Paths.new
39
+ h[:dep]=Deps.new
44
40
  return h
45
41
  end
46
42
 
47
43
  def refresh
48
- update_default_values
49
- db = Dev::Database.new
50
- db.set_branch_uri(self[:fullname],self[:scm_uri])
51
-
44
+ puts_debug "Dev::Project.refresh"
45
+ self[:dep].refresh
46
+ #update_default_values
47
+ #db = Dev::Database.new
48
+ #db.set_branch_uri(self[:fullname],self[:scm_uri])
52
49
  end
53
- def update_default_values
54
- puts_debug "update_default_values"
55
- #newValues=Hash.new
56
- #self.each{ |k,v|
57
- # newValues[k.to_s]=v if !self.has_key?(k.to_s)
58
- #}
59
- #self.merge(newValues)
60
-
61
- if !self.has_key?(:dep) || self[:dep].nil?
62
- puts_debug "assigning self[:dep] to Hash.new"
63
- self[:dep]=Hash.new
64
- end
65
-
66
- ["features" ].each do |k|
67
- puts_debug "set_default_value(#{k})"
68
- set_default_value(k)
69
- end
70
- #CMD.refresh
71
- generate_auto_replace_directives
72
- #generate_tasks(self)
73
- end
74
50
 
75
51
  def get_default_value_name
76
52
  dirs=::Rake.original_dir().split('/')
@@ -118,62 +94,6 @@ class Project < Hash
118
94
  return nil
119
95
  end
120
96
 
121
- def get_default_value_paths
122
- hash=Hash.new
123
-
124
- ["v4.0.30319","v3.5","v3.0","v2.0.50727"].each { |v|
125
- f="C:/WINDOWS/Microsoft.NET/Framework/#{v}/MSBuild.exe"
126
- hash[:msbuild]=f if File.exists?(f) && hash[:msbuild].nil?
127
- f="C:/WINDOWS/Microsoft.NET/Framework/#{v}/RegAsm.exe"
128
- hash[:regasm]=f if File.exists?(f) && hash[:regasm].nil?
129
- }
130
-
131
- ["2.6.0.12051","2.5.10.11092"].each{ |v|
132
- Dir.glob("#{Dev::Environment.dev_root}/dep/*/NUnit/#{v}/bin/nunit-console-x86.exe").each{|f|
133
- hash[:nunit]=f if File.exists?(f) && hash[:nunit].nil?
134
- }
135
- if( !hash.has_key?(:nunit) )
136
- Dir.glob("#{Dev::Environment.dev_root}/dep/*/NUnit/#{v}/bin/*/nunit-console-x86.exe").each{|f|
137
- hash[:nunit]=f if File.exists?(f) && hash[:nunit].nil?
138
- }
139
- end
140
- }
141
-
142
- hash=nil if hash.length < 1
143
- return hash
144
- end
145
-
146
- def update_keys
147
- self.each{ |name,value| self[name]=value }
148
- end
149
-
150
- def array_method(name)
151
-
152
- # prefer CMD.execute_method
153
- puts "routing call to array_method(#{name}) to CMD.execute_method" if !CMD.get_value(name.to_s).nil?
154
- return CMD.execute_method(name) if !CMD.get_value(name.to_s).nil?
155
-
156
- puts "array_method(#{name}) executing on Dev::Project class, #{name} should be moved to CMD hash"
157
- string_name=name.to_s
158
- puts_debug "method_missing name=" + string_name
159
-
160
- puts " no directives defined for #{string_name}" if self.get_value(string_name).nil? && string_name=="pull"
161
- return if(self.get_value(string_name).nil?)
162
- puts " no directives defined for #{string_name}" if self.get_value(string_name).length < 1
163
- return if self.get_value(string_name).length < 1
164
-
165
- value=self.get_value(string_name)
166
- if value.kind_of?(Hash)
167
- value.each { |name,value| execute_cmd(value); sleep(0.5) }
168
- else
169
- value.each { |c| execute_cmd(c); sleep(0.5) }
170
- end
171
- end
172
-
173
- def execute_cmd(c); Dev::Commands.execute_cmd(c); end
174
-
175
- def method_missing( name, *args ); array_method(name); end
176
-
177
97
  def loc_cmd
178
98
  cmd="countloc --recurse ."
179
99
  cmd="countloc --recurse --mode ruby ." if self[:type]=="ruby" || self[:type]=="gem"
@@ -186,8 +106,6 @@ class Project < Hash
186
106
  system(loc_cmd)
187
107
  end
188
108
 
189
-
190
-
191
109
  def loc_total
192
110
  # parse the output for TOTAL LOC
193
111
  call=Dev::SystemCall.new(loc_cmd)
@@ -203,147 +121,13 @@ class Project < Hash
203
121
  Dev::Environment.user + "." + Dev::Environment.machine
204
122
  end
205
123
 
206
-
207
-
208
124
  def stamp_task(name)
209
125
  File.open("#{name}.taskstamp." + context,"w") { |f| f.write(Time.now.to_s) }
210
126
  end
211
127
 
212
- def generate_auto_replace_directives
213
- # only generate replace directives if a commit may be made...
214
- if(self[:scm_type]=="svn" || self[:scm_type]=="git")
215
- ["vcxproj","csproj"].each { |ext|
216
- if(self[:file_count].has_key?(ext.to_sym) && self[:file_count][ext.to_sym] > 0)
217
- self[:replace]=Hash.new if self[:replace].nil?
218
- self[:dep].each{ |k,v|
219
- if !self[:dep][k].has_key?(:rev) && self[:dep][k].has_key?(:uri)
220
- words=self[:dep][k][:uri].split('@')
221
- self[:dep][k][:rev]=words[1] if words.count==2
222
- end
223
- if self[:dep][k].has_key?(:rev) && self[:dep][k].has_key?(:dir) && !self[:replace].has_key?(k)
224
- group=self[:dep][k][:dir].split('/')[0]
225
- searchRegex=Regexp.new "#{group}\\\\#{k}\\\\[\\d]+"
226
- self[:replace][k]={ glob: "**/*.#{ext}", search: searchRegex, replace: "#{group}\\#{k}\\#{v[:rev]}" }
227
- end
228
- }
229
- end
230
- }
231
- end
232
- end
233
-
234
- def replace
235
- generate_auto_replace_directives
236
- #puts " "
237
- #puts "replace".foreground(:yellow).bright
238
- hash=self[:replace]
239
- if hash.nil?
240
- puts " no replace directives"
241
- end
242
- unless hash.nil?
243
- hash.each do |k,v|
244
- unless v.nil?
245
- file=v[:file]
246
- search=v[:search]
247
- replace=v[:replace]
248
- glob=v[:glob]
249
- unless search.nil? || replace.nil?
250
- unless file.nil?
251
- Dev::Environment.replace_text_in_file(file,search,replace)
252
- end
253
- unless glob.nil?
254
- Dev::Environment.replace_text_in_glob(glob,search,replace)
255
- end
256
- end
257
- end
258
- end
259
- end
260
- end
261
-
262
- def features
263
- if self[:type]=="C#" && File.exists?("bin/x86/Release/#{self[:name]}.Features.dll")
264
- call=Dev::SystemCall.new(expand_project_variables("<paths,nunit> /nologo bin/x86/Release/#{self[:name]}.Features.dll"))
265
- puts call.command
266
- puts call.output
267
- raise "exit_code=#{call.status.to_s}" + call.error unless call.status==0
268
- end
269
-
270
- array_method("features")
271
- end
272
-
273
- def has_build_products
274
- end
275
-
276
-
277
-
278
-
279
-
280
-
281
-
282
- def rake_working_deps
283
- unless dep_hash.nil?
284
- dep_hash.each do |key,value|
285
- if value.kind_of?(Hash)
286
- # potential hash keys: uri, dir, rake
287
- # uri is required
288
- unless value.get_value("uri").nil?
289
- uri=expand_project_variables(value.get_value("uri"))
290
- uri_words=uri.split('/')
291
- while(uri_words.length > 3) do
292
- uri_words.shift
293
- end
294
- dir=self[:dev_root] + "/wrk/" + uri_words.join('/')
295
- unless value.get_value("rake").nil?
296
- if(File.exist?(dir))
297
- rake_task=value.get_value("rake")
298
- cmd_hash = {:cmd=> "rake #{rake_task}", :dir=> "#{dir}"}
299
- end
300
- end
301
- end
302
- end # unless value.get_value("uri").nil?
303
- end
304
- end # unless dep_hash.nil?
305
- end
306
-
307
- def pull
308
- update unless has_diff
309
- array_method("pull")
310
- filename=Dir.pwd + "/rakefile.rb"
311
- puts " updating revision variables for " + filename
312
- Dev::Svn::update_revision_variables(filename)
313
- end
314
-
315
-
316
-
317
- def set_default_value(key)
318
- set_value(key,get_default_value(key)) if get_value(key).nil? && !get_default_value(key).nil?
319
- end
320
-
321
- def get_default_value(key)
322
-
323
- value=loc_total if key=="loc"
324
-
325
- array=Array.new
326
-
327
- if(key=="features")
328
- array << "cucumber features" if File.exists?("features") && Dir.glob("features/**/*.rb").length > 0
329
- end
330
- if(key=="has_diff")
331
- array << 'git diff' if File.exists?(".git")
332
- array << "{ :cmd=> 'svn diff', :capture_output=> false}" if File.exists?(".svn")
333
- end
334
-
335
-
336
- value=array if array.length > 0
337
-
338
- return value
339
- end
340
-
341
-
342
-
343
-
344
128
  end
345
129
  end # module Dev
346
130
 
347
- DEV=Dev::Project.new(nil,true)
131
+ DEV=Dev::Project.new#(nil,true)
348
132
  DEV.refresh
349
- PROJECT=DEV
133
+ PROJECT=DEV
@@ -154,36 +154,6 @@ class SystemCall
154
154
  puts_debug "status = " + status.to_s
155
155
  return status,output,error
156
156
  end
157
-
158
- def system3(working_dir,command,capture_output,capture_error)
159
- puts_debug "system3(" + working_dir.to_s + "," + command + ")"
160
- status = 0
161
- output = ""
162
- error = ""
163
- working_dir = Dir.pwd if working_dir.nil? || working_dir.empty?
164
- puts_debug " Dir.chdir(" + working_dir + ")"
165
- Dir.chdir(working_dir) do
166
- if(capture_output && capture_error)
167
- puts_debug " calling status,output,error=systemu(" + command + ")"
168
- status,output,error=systemu(command)
169
- else
170
- error=""
171
- if(capture_error)
172
- puts_debug " calling system(" + command + ")"
173
- system(command)
174
- status=$?.exitstatus
175
- output=""
176
- else
177
- puts_debug " calling output=`#{command}`"
178
- output=`#{command}`
179
- status=$?.exitstatus
180
- end
181
- end
182
- end
183
-
184
- puts_debug("status = " + status.to_s)
185
- return status,output,error
186
- end
187
157
 
188
158
  def puts_summary
189
159
  if(@status != 0)
data/lib/dev/Tasks.rb CHANGED
@@ -34,7 +34,7 @@ def generate_task_hash(project)
34
34
  end
35
35
 
36
36
  task_hash[:compile] = { :desc=> 'compile source code' } if CMD.has_key?(:compile) || project.has_key?(:compile)
37
- task_hash[:replace] = { :desc=> 'replace text' } if project.has_key?(:replace)
37
+ task_hash[:replace] = { :desc=> 'replace text' } if CMD.has_key?(:replace)
38
38
 
39
39
  if project[:type]=="gem" || project[:type]=="ruby"
40
40
  task_hash[:features] = { :desc=> 'tests cucumber features' }
@@ -85,6 +85,7 @@ end
85
85
  module Dev
86
86
  class Tasks < Hash
87
87
  def refresh
88
+ puts_debug "Dev::Tasks.refresh"
88
89
  DEV.refresh
89
90
  CMD.refresh
90
91
  generate_tasks(DEV)
@@ -0,0 +1,12 @@
1
+ module Dev
2
+ module Cmd
3
+ class Commit < Array
4
+ def refresh
5
+ strip_auto_entries
6
+ File.open('commit.message','w'){|f|f.puts "commit all"} if !File.exists?('commit.message')
7
+ self << "{:cmd=>'git commit -a -F commit.message',:auto=>true}" if File.exists?(".git")
8
+ self << "{:cmd=>'svn commit -F commit.message',:auto=>true}" if File.exists?(".svn")
9
+ end
10
+ end # class Compile
11
+ end # module Cmd
12
+ end # module Dev
@@ -1,14 +1,16 @@
1
1
  module Dev
2
2
  module Cmd
3
- class Compile
4
- def self.get_auto_compile_directives
5
- array=Array.new
3
+ class Compile < Array
4
+ def refresh
5
+
6
+ puts_debug "Dev::Cmd::Compile.refresh"
7
+ strip_auto_entries
6
8
  windows=RUBY_PLATFORM.include?("w32")
7
9
 
8
10
  # jamfiles
9
11
 
10
12
  # vcxproj
11
- Dir.glob('**/*.vcxproj').each { |vcxproj| array << "<paths,msbuild> #{vcxproj} /property:Configuration=Release /property:Platform=Win32" } if windows
13
+ Dir.glob('**/*.vcxproj').each { |vcxproj| self << "{:cmd=> '<paths,msbuild> #{vcxproj} /property:Configuration=Release /property:Platform=Win32', :auto=>true}" } if windows
12
14
 
13
15
  # csproj
14
16
  csbuild="<paths,msbuild>"
@@ -17,15 +19,12 @@ class Compile
17
19
  platforms=Dev::Cmd::Compile.extract_platforms(csproj)
18
20
  platforms.each { |platform|
19
21
  skip=(!RUBY_PLATFORM.include?("w32") && platform=="x64")
20
- array << "#{csbuild} #{csproj} /property:Configuration=Release /property:Platform=\"#{platform}\" /p:OutputPath=./bin/#{platform}/Release" if !skip
22
+ array << "{:cmd=> '#{csbuild} #{csproj} /property:Configuration=Release /property:Platform=\"#{platform}\" /p:OutputPath=./bin/#{platform}/Release', :auto=>true}" if !skip
21
23
  }
22
24
  }
23
25
 
24
26
  # gemspec
25
- Dir.glob("*.gemspec").each { |gs| array << "{ :cmd=> 'gem build #{gs}', :capture_output=> false}" }
26
-
27
- array=nil if array.empty?
28
- return array
27
+ Dir.glob("*.gemspec").each { |gs| self << "{:cmd=> 'gem build #{gs}', :capture_output=> false, :auto=> true}" }
29
28
  end
30
29
 
31
30
  def self.extract_platforms(filename)
data/lib/dev/cmd/Info.rb CHANGED
@@ -1,6 +1,14 @@
1
1
  module Dev
2
2
  module Cmd
3
3
  class Info
4
+ def self.execute
5
+ puts "DEV"
6
+ Hash.print_hash("",DEV)
7
+ puts " "
8
+ puts "CMD"
9
+ Hash.print_hash("",CMD)
10
+ puts " "
11
+ end
4
12
  end # class Info
5
13
  end # module Cmd
6
14
  end # module Dev
@@ -0,0 +1,33 @@
1
+ module Dev
2
+ module Cmd
3
+ class Pull < Array
4
+ def refresh
5
+ strip_auto_entries
6
+ end
7
+ end # class Compile
8
+ end # module Cmd
9
+ end # module Dev
10
+
11
+ #def pull
12
+ # update unless has_diff
13
+ # array_method("pull")
14
+ # filename=Dir.pwd + "/rakefile.rb"
15
+ # puts " updating revision variables for " + filename
16
+ # Dev::Svn::update_revision_variables(filename)
17
+ # end
18
+ # def get_default_value_pull
19
+ # array=Array.new
20
+ # # dep,svn directives
21
+ # dep_hash=DEV.get_value("dep")
22
+ # unless dep_hash.nil?
23
+ # dep_hash.each do |key,value|
24
+ # if value.kind_of?(Hash)
25
+ # dep=Dev::Dep.new(value)
26
+ # dep.pull_commands.each{|cmd| array << cmd}
27
+ # #puts_debug "pull array: " + array.to_s
28
+ # end
29
+ # end
30
+ # end
31
+ # array=nil if array.empty?
32
+ # return array
33
+ # end
@@ -0,0 +1,49 @@
1
+ module Dev
2
+ module Cmd
3
+ class Replace < Hash
4
+ def refresh(dep_hash)
5
+ puts_debug "Dev::Cmd::Replace.refresh"
6
+ # remove all auto generated entries
7
+ self.each { |k,v|
8
+ self.delete k if v.kind_of?(Hash) && v.has_key?(:auto) && v[:auto]
9
+ }
10
+
11
+ # auto generate replace entry based on dep values
12
+ if File.exists?(".svn") || File.exists?(".git")
13
+ ["vcxproj","csproj"].each { |ext|
14
+ if(Dir.glob("**/*.#{ext}").count > 0)
15
+ dep_hash.each{ |k,v|
16
+ if !v.nil? && v.kind_of?(Hash) && v.has_key?(:rev) && v.has_key?(:dir) && !has_key?(k)
17
+ group=v[:dir].split('/')[0]
18
+ searchRegex=Regexp.new "#{group}\\\\#{k}\\\\[\\d]+"
19
+ self[k]={ glob: "**/*.#{ext}", search: searchRegex, replace: "#{group}\\#{k}\\#{v[:rev]}", auto: true }
20
+ #self[k][:auto]=true
21
+ end
22
+ }
23
+ end
24
+ }
25
+ end
26
+ end
27
+
28
+ def execute
29
+ self.each do |k,v|
30
+ unless v.nil?
31
+ file=v[:file]
32
+ search=v[:search]
33
+ replace=v[:replace]
34
+ glob=v[:glob]
35
+ unless search.nil? || replace.nil?
36
+ unless file.nil?
37
+ Dev::Environment.replace_text_in_file(file,search,replace)
38
+ end
39
+ unless glob.nil?
40
+ Dev::Environment.replace_text_in_glob(glob,search,replace)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+ end # class Replace
48
+ end # module Cmd
49
+ end # module Dev
@@ -0,0 +1,19 @@
1
+ module Dev
2
+ module Cmd
3
+ class Setup < Array
4
+
5
+ def refresh(dep_hash)
6
+ puts_debug "Dev::Cmd::Setup.get_auto_setup_directives"
7
+ strip_auto_entries
8
+ # auto generate setup entry based on dep values
9
+ dep_hash.each{ |k,v|
10
+ if !v.nil? && v.kind_of?(Hash)
11
+ dep=Dev::Dep.new(v)
12
+ dep.setup_commands.each{|cmd| self << cmd}
13
+ end
14
+ }
15
+ end
16
+
17
+ end # class Setup
18
+ end # module Cmd
19
+ end # module Dev
@@ -0,0 +1,25 @@
1
+ module Dev
2
+ module Cmd
3
+ class Test < Array
4
+ def refresh
5
+ strip_auto_entries
6
+
7
+ if(Dir.glob("**/*.spec").count > 0) #if DEV.has_key?(:file_count) && DEV[:file_count].has_key?(:spec) && DEV[:file_count][:spec] > 0
8
+ rspec_cmd='rspec --pattern="**/*.spec"'
9
+ self << "{:cmd=>'#{rspec_cmd}', :auto=>true}"
10
+ end
11
+
12
+ Dir.glob("*.gemspec").each { |gs|
13
+ self << "{:cmd=>'gem install ./#{gs.gsub('.gemspec','')}-#{DEV[:version]}.gem', :capture_output=>true, :auto=>true}"
14
+ }
15
+
16
+ Dir.glob("*.{Test.csproj,Features.csproj}").each { |cs|
17
+ dll_name="bin/x86/Release/#{File.basename(cs,'.csproj')}.dll"
18
+ self << "\"<paths,nunit>\" /nologo #{dll_name} /xml:#{dll_name}.nunit-results.xml" if RUBY_PLATFORM.include?("w32")
19
+ self << "mono \"<paths,nunit>\" #{dll_name}" if !RUBY_PLATFORM.include?("w32")
20
+ }
21
+
22
+ end
23
+ end # class Test
24
+ end # module Cmd
25
+ end # module Dev
@@ -0,0 +1,10 @@
1
+ module Dev
2
+ module Cmd
3
+ class Update < Array
4
+ def refresh
5
+ strip_auto_entries
6
+ self << "{:cmd=>'svn update',:auto=>true}" if File.exists?(".svn")
7
+ end
8
+ end # class Compile
9
+ end # module Cmd
10
+ end # module Dev
data/lib/dev.rb CHANGED
@@ -39,10 +39,7 @@ end
39
39
 
40
40
  puts_debug "read " + __FILE__.foreground(:green)
41
41
 
42
- #require "#{File.dirname(__FILE__)}/dev/Environment.rb"
43
- #require "#{File.dirname(__FILE__)}/dev/Hash.rb"
44
- #require "#{File.dirname(__FILE__)}/dev/SystemCall.rb"
45
- ["Environment","Hash","SystemCall","Database","BoostBuild","Project","Commands","Tasks"].each{ |f| require "#{File.dirname(__FILE__)}/dev/#{f}.rb" }
42
+ ["Environment","Array","Hash","SystemCall","Paths","Dep","Deps","Database","BoostBuild","Project","Commands","Tasks"].each{ |f| require "#{File.dirname(__FILE__)}/dev/#{f}.rb" }
46
43
  Dir["#{File.dirname(__FILE__)}/dev/**/*.rb"].each{ |f| require f }
47
44
 
48
45
  DEV_ROOT=Dev::Environment.dev_root
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dev
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.146
4
+ version: 1.0.147
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -164,15 +164,24 @@ extra_rdoc_files: []
164
164
  files:
165
165
  - LICENSE
166
166
  - README
167
+ - lib/dev/Array.rb
167
168
  - lib/dev/BoostBuild.rb
169
+ - lib/dev/cmd/Commit.rb
168
170
  - lib/dev/cmd/Compile.rb
169
171
  - lib/dev/cmd/Info.rb
172
+ - lib/dev/cmd/Pull.rb
173
+ - lib/dev/cmd/Replace.rb
174
+ - lib/dev/cmd/Setup.rb
175
+ - lib/dev/cmd/Test.rb
176
+ - lib/dev/cmd/Update.rb
170
177
  - lib/dev/Commands.rb
171
178
  - lib/dev/Database.rb
172
179
  - lib/dev/Dep.rb
180
+ - lib/dev/Deps.rb
173
181
  - lib/dev/Environment.rb
174
182
  - lib/dev/Hash.rb
175
183
  - lib/dev/MsBuild.rb
184
+ - lib/dev/Paths.rb
176
185
  - lib/dev/Project.rb
177
186
  - lib/dev/Scm.rb
178
187
  - lib/dev/Svn.rb