dev 1.0.146 → 1.0.147
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/dev/Array.rb +17 -0
- data/lib/dev/Commands.rb +28 -124
- data/lib/dev/Dep.rb +3 -3
- data/lib/dev/Deps.rb +30 -0
- data/lib/dev/Hash.rb +4 -1
- data/lib/dev/Paths.rb +23 -0
- data/lib/dev/Project.rb +13 -229
- data/lib/dev/SystemCall.rb +0 -30
- data/lib/dev/Tasks.rb +2 -1
- data/lib/dev/cmd/Commit.rb +12 -0
- data/lib/dev/cmd/Compile.rb +8 -9
- data/lib/dev/cmd/Info.rb +8 -0
- data/lib/dev/cmd/Pull.rb +33 -0
- data/lib/dev/cmd/Replace.rb +49 -0
- data/lib/dev/cmd/Setup.rb +19 -0
- data/lib/dev/cmd/Test.rb +25 -0
- data/lib/dev/cmd/Update.rb +10 -0
- data/lib/dev.rb +1 -4
- metadata +10 -1
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
|
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.
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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
|
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
|
-
|
168
|
-
|
169
|
-
|
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
|
81
|
+
unless DEV[:src_glob].nil?
|
178
82
|
scm = Dev::Scm.new
|
179
83
|
return if scm.scm_type == "none"
|
180
|
-
if
|
181
|
-
|
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 " +
|
187
|
-
scm.add_file_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
|
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
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
|
11
|
-
|
12
|
-
|
13
|
-
|
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
|
-
|
43
|
-
h[:
|
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
|
-
|
49
|
-
|
50
|
-
|
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
|
data/lib/dev/SystemCall.rb
CHANGED
@@ -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
|
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
|
data/lib/dev/cmd/Compile.rb
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
module Dev
|
2
2
|
module Cmd
|
3
|
-
class Compile
|
4
|
-
def
|
5
|
-
|
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|
|
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|
|
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
data/lib/dev/cmd/Pull.rb
ADDED
@@ -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
|
data/lib/dev/cmd/Test.rb
ADDED
@@ -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
|
data/lib/dev.rb
CHANGED
@@ -39,10 +39,7 @@ end
|
|
39
39
|
|
40
40
|
puts_debug "read " + __FILE__.foreground(:green)
|
41
41
|
|
42
|
-
|
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.
|
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
|