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 +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
|