dev_tasks 1.0.38 → 1.0.39
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_tasks.rb +3 -219
- data/lib/tasks.rb +87 -0
- data/spec/dev_tasks_spec.rb +12 -38
- data/spec/gem-example/rakefile.rb +16 -0
- metadata +20 -41
- data/lib/add.rb +0 -30
- data/lib/artifacts.x.rb +0 -46
- data/lib/build.rb +0 -28
- data/lib/color.rb +0 -23
- data/lib/commands.rb +0 -63
- data/lib/commit.rb +0 -25
- data/lib/console.rb +0 -81
- data/lib/dependencies.rb +0 -85
- data/lib/environment.rb +0 -118
- data/lib/htmllog.rb +0 -53
- data/lib/jsonlog.rb +0 -18
- data/lib/logger.rb +0 -37
- data/lib/msbuild.rb +0 -41
- data/lib/publish.rb +0 -50
- data/lib/pull.rb +0 -15
- data/lib/push.rb +0 -12
- data/lib/settings.rb +0 -26
- data/lib/setup.rb +0 -17
- data/lib/spec.json +0 -1
- data/lib/svnexports.rb +0 -5
- data/lib/teardown.rb +0 -4
- data/lib/test.rb +0 -55
- data/lib/timer.rb +0 -41
- data/lib/upgrade.rb +0 -52
- data/lib/verify.rb +0 -38
- data/lib/yamllog.rb +0 -18
- data/spec/dependencies_spec.rb +0 -28
- data/spec/environment_spec.rb +0 -8
- data/spec/msbuild_spec.rb +0 -9
- data/spec/spec_helper.rb +0 -4
- data/spec/test_data/cpp_projects/helloLib/rakefile.rb +0 -9
- data/spec/test_data/csharp_projects/JsonNet.Test.csproj +0 -75
- data/spec/test_data/csharp_projects/JsonNet.csproj +0 -79
- data/spec/test_data/csharp_projects/helloDll/helloDll.Net2.0.csproj +0 -54
- data/spec/test_data/csharp_projects/helloDll/helloDll.Net3.5.csproj +0 -54
- data/spec/test_data/csharp_projects/helloDll/helloDll.Net4.0.csproj +0 -54
- data/spec/test_data/csharp_projects/helloDll/helloDll.Net4.5.csproj +0 -56
- data/spec/test_data/csharp_projects/helloDll/rakefile.rb +0 -1
- data/spec/test_data/ruby_projects/helloGem/rakefile.rb +0 -3
data/lib/dev_tasks.rb
CHANGED
@@ -1,220 +1,4 @@
|
|
1
|
-
|
2
|
-
require 'rake/clean'
|
3
|
-
require 'json'
|
4
|
-
require 'dev_commands'
|
5
|
-
require 'dev_environment'
|
6
|
-
include Rake::DSL
|
1
|
+
require_relative('tasks.rb')
|
7
2
|
|
8
|
-
|
9
|
-
|
10
|
-
require_relative './dependencies.rb'
|
11
|
-
require_relative './console.rb'
|
12
|
-
require_relative './timer.rb'
|
13
|
-
require_relative './settings.rb'
|
14
|
-
#require_relative './text.rb'
|
15
|
-
require_relative './svnexports.rb'
|
16
|
-
require_relative './logger.rb'
|
17
|
-
|
18
|
-
CLEAN.include('log','bin/**/*.pdb')
|
19
|
-
CLOBBER.include('bin','obj','TestResults','*.gem','bin/**/*.exe')
|
20
|
-
|
21
|
-
class DevTasks < Hash
|
22
|
-
|
23
|
-
attr_accessor :timer
|
24
|
-
|
25
|
-
def initialize
|
26
|
-
@timer = Timer.new
|
27
|
-
self[:name]=pwd.split('/').last#Rake.application.original_dir.split('/').last
|
28
|
-
self[:svn_exports]=SvnExports.new
|
29
|
-
self[:scm]=Environment.scm
|
30
|
-
self[:scm_origin]=Environment.scm_origin
|
31
|
-
self[:branch]=Environment.branch
|
32
|
-
|
33
|
-
|
34
|
-
self[:task_order]=['pull','upgrade','setup','add','build','test','commit','push','verify','publish','teardown']
|
35
|
-
self[:relative_directory]=Environment.relative_directory
|
36
|
-
self[:working_directory]=Environment.working_directory
|
37
|
-
self[:context]=Environment.context
|
38
|
-
self[:machine]=Environment.machine
|
39
|
-
self[:platform]=RUBY_PLATFORM
|
40
|
-
self[:dev_root]=Environment.dev_root
|
41
|
-
self[:settings]=Settings.new
|
42
|
-
|
43
|
-
self[:files]=Hash.new
|
44
|
-
#self[:files][:source]=Rake::FileList.new("**/{*.{rb,feature,spec,gemspec,cs,c,m,cpp,cxx,h,hpp,i,jam,csproj,vcproj,snk,vcxproj,xcodeproj,plist,xib,sln,filters,xaml,yml,json,resx,settings,config},Jamfile,.semver,Gemfile,README,LICENSE}")
|
45
|
-
self[:files][:source]=Rake::FileList.new("**/{*.{rb,feature,spec,gemspec}}")
|
46
|
-
self[:files][:source].include('**/*.{cs,csproj,sln}')
|
47
|
-
self[:files][:source].include('**/*.{cpp,cxx,h,hpp,i,c,vcproj,vcxproj,filters,resx,settings,config}')
|
48
|
-
self[:files][:source].include('**/*.{m,xcodeproj,xib}')
|
49
|
-
self[:files][:source].include('**/*.{xaml,xml,yaml,yml,json,md}')
|
50
|
-
self[:files][:source].include('**/{Jamfile,.semver,Gemfile,README,LICENSE}')
|
51
|
-
self[:files][:source].exclude("log/**/*.*")
|
52
|
-
self[:files][:source].exclude("bin/**/*.*")
|
53
|
-
self[:files][:source].exclude("obj/**/*.*")
|
54
|
-
|
55
|
-
self[:files][:build]=Rake::FileList.new('**/*.{gemspec,sln}')
|
56
|
-
|
57
|
-
self[:files][:artifact]=Rake::FileList.new("**/*.{gem,lib,dll,exe,h,hpp}")
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
self[:commands]=Commands.new
|
62
|
-
update
|
63
|
-
end
|
64
|
-
|
65
|
-
def add hash
|
66
|
-
hash.each do |key,value|
|
67
|
-
self[key]=value if !has_key?(key)
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
def update
|
72
|
-
self[:dependencies]=Dependencies.new if !has_key?(:dependencies)
|
73
|
-
allartifactsexist = true
|
74
|
-
self[:files][:artifact].each{|f| allartifactsexist=false if !File.exists?(f)}
|
75
|
-
|
76
|
-
self[:newest_source_file]=self[:files][:source].max_by {|f| File.mtime(f)}
|
77
|
-
self[:newest_artifact_file]=self[:files][:artifact].max_by { |f| File.mtime(f) } if allartifactsexist
|
78
|
-
|
79
|
-
self[:commands]=Commands.new if !has_key?(:commands)
|
80
|
-
#self[:commands].update
|
81
|
-
|
82
|
-
self[:up_to_date] = false
|
83
|
-
if(allartifactsexist && !self[:newest_artifact].nil? && !self[:newest_src_file].nil? && File.exists?(self[:newest_artifact]) && File.exists?(self[:newest_src_file]))
|
84
|
-
if(File.mtime(self[:newest_artifact]) > File.mtime(self[:newest_src_file]))
|
85
|
-
self[:task_order]=['upgrade'] if(File.mtime(self[:newest_artifact]) > File.mtime(self[:newest_src_file]))
|
86
|
-
self[:up_to_date]=true
|
87
|
-
end
|
88
|
-
self[:newest_artifact_file_mtime]=File.mtime(self[:newest_artifact_file]).to_s
|
89
|
-
self[:newest_source_file_mtime]=File.mtime(self[:newest_source_file]).to_s
|
90
|
-
end
|
91
|
-
update_tasks
|
92
|
-
end
|
93
|
-
|
94
|
-
def execute cmd
|
95
|
-
self[:commands].execute_command cmd
|
96
|
-
end
|
97
|
-
|
98
|
-
def execute_task task
|
99
|
-
self[:commands].execute_task task
|
100
|
-
end
|
101
|
-
|
102
|
-
def define_task task_name
|
103
|
-
if(!Rake::Task.task_defined?(task_name))
|
104
|
-
ruby="desc '#{DevTasks.description(task_name)} ';task :#{task_name} do;DEV_TASKS.execute_task '#{task_name}';end"
|
105
|
-
eval(ruby)
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
def self.description task_name
|
110
|
-
descriptions={
|
111
|
-
"add"=>"add untracked files to revision control system",
|
112
|
-
"build"=>"executes build commands",
|
113
|
-
"test"=>"executes test commands",
|
114
|
-
"setup"=>"executes setup commands",
|
115
|
-
"commit"=>"commit changes to revision control system"
|
116
|
-
}
|
117
|
-
if descriptions.has_key?(task_name.to_s)
|
118
|
-
descriptions[task_name.to_s]
|
119
|
-
else
|
120
|
-
"#{task_name} task"
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
def update_tasks
|
125
|
-
dev_task_defaults=Array.new
|
126
|
-
self[:commands].each do |key,array|
|
127
|
-
#if(array.length > 0)
|
128
|
-
define_task key
|
129
|
-
dev_task_defaults << key
|
130
|
-
#end
|
131
|
-
end
|
132
|
-
update_task_dependencies
|
133
|
-
end
|
134
|
-
|
135
|
-
def update_task_dependencies
|
136
|
-
eval('task :build=>[:setup]') if Rake::Task.task_defined?(:setup) && Rake::Task.task_defined?(:build)
|
137
|
-
eval('task :test=>[:build]') if Rake::Task.task_defined?(:build) && Rake::Task.task_defined?(:test)
|
138
|
-
end
|
139
|
-
|
140
|
-
def setup_svn_export(uri,dir)
|
141
|
-
DEV_TASKS[:commands][:setup] << "svn export #{uri} #{dir}" if(!File.exists?(dir))
|
142
|
-
end
|
143
|
-
|
144
|
-
def setup_copy(src,dest)
|
145
|
-
if(File.exists?(src))
|
146
|
-
FileUtils.mkdir_p(File.dirname(dest)) if(!File.exists?(File.dirname(dest)))
|
147
|
-
if(!File.exists?(dest))
|
148
|
-
DEV_TASKS[:commands][:setup] << "<%FileUtils.cp('#{src}','#{dest}')%>"
|
149
|
-
end
|
150
|
-
else
|
151
|
-
if(src.kind_of?(Array))
|
152
|
-
src.each{|s|setup_copy(s,dest)}
|
153
|
-
end
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
def svn_export(dep_dir,uri)
|
158
|
-
if(!File.exists?("#{Environment.dev_root}/dep/#{dep_dir}"))
|
159
|
-
dest="#{Environment.dev_root}/dep/#{dep_dir}"
|
160
|
-
Environment.execute "svn export #{uri} #{Environment.dev_root}/dep/#{dep_dir}" if !dest.include?("@")
|
161
|
-
Environment.execute "svn export #{uri} #{Environment.dev_root}/dep/#{dep_dir}@" if dest.include?("@")
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|
165
|
-
|
166
|
-
DEV_TASKS=DevTasks.new
|
167
|
-
DEV=DEV_TASKS
|
168
|
-
|
169
|
-
desc 'executes tasks in order of task_order, if they are defined'
|
170
|
-
task :dev_tasks_default do
|
171
|
-
DEV_TASKS.update
|
172
|
-
DEV_TASKS[:task_order].each{|c|
|
173
|
-
Rake::Task[c].invoke if(Rake::Task.task_defined?(c))
|
174
|
-
}
|
175
|
-
puts "Total Time " + DEV_TASKS.timer.elapsed_str
|
176
|
-
end
|
177
|
-
|
178
|
-
desc 'dev_tasks default'
|
179
|
-
task :default do
|
180
|
-
Rake::Task[:dev_tasks_default].invoke
|
181
|
-
Logger.finalize
|
182
|
-
end
|
183
|
-
|
184
|
-
desc 'displays information about current rake directory'
|
185
|
-
task :info do
|
186
|
-
DEV_TASKS.update
|
187
|
-
Console.print_hash("",DEV_TASKS)
|
188
|
-
end
|
189
|
-
|
190
|
-
desc 'displays help for dev_task'
|
191
|
-
task :help do
|
192
|
-
puts "use rake -T to see available tasks"
|
193
|
-
end
|
194
|
-
|
195
|
-
#desc 'rake projects defined in DEV_TASKS[:dependencies][:projects]'
|
196
|
-
task :rake_dependencies_projects do
|
197
|
-
Console.announce_task_start "rake_dependencies_projects"
|
198
|
-
DEV_TASKS[:dependencies][:projects].each{|project|
|
199
|
-
dir=Environment.dev_root + "/wrk/" + project
|
200
|
-
Environment.rake(dir,"default",true) if File.exists?(dir)
|
201
|
-
}
|
202
|
-
end
|
203
|
-
|
204
|
-
#desc 'clobber projects defined in DEV_TASKS[:dependencies][:projects]'
|
205
|
-
task :clobber_dependencies_projects do
|
206
|
-
Console.announce_task_start "clobber_dependencies_projects"
|
207
|
-
DEV_TASKS[:dependencies][:projects].each{|project|
|
208
|
-
dir=Environment.dev_root + "/wrk/" + project
|
209
|
-
Environment.rake(dir,"clobber",true) if File.exists?(dir)
|
210
|
-
}
|
211
|
-
end
|
212
|
-
|
213
|
-
#desc 'clean projects defined in DEV_TASKS[:dependencies][:projects]'
|
214
|
-
task :clean_dependencies_projects do
|
215
|
-
Console.announce_task_start "clean_dependencies_projects"
|
216
|
-
DEV_TASKS[:dependencies][:projects].each{|project|
|
217
|
-
dir=Environment.dev_root + "/wrk/" + project
|
218
|
-
Environment.rake(dir,"clean",true) if File.exists?(dir)
|
219
|
-
}
|
220
|
-
end
|
3
|
+
class DevTasks
|
4
|
+
end
|
data/lib/tasks.rb
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/clean'
|
3
|
+
|
4
|
+
class Tasks
|
5
|
+
@@commands=nil
|
6
|
+
@@quiet=false
|
7
|
+
|
8
|
+
def self.commands
|
9
|
+
if(@@commands.nil?)
|
10
|
+
@@commands=Hash.new
|
11
|
+
[:pull,:update,:build,:test,:analyze,:doc,:clean,:publish,:clobber,:add,:commit,:push].each{|k| @@commands[k]=[]}
|
12
|
+
end
|
13
|
+
@@commands
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.initialize commands
|
17
|
+
@@commands=commands
|
18
|
+
[:pull,:update,:build,:test,:analyze,:doc,:clean,:publish,:clobber,:add,:commit,:push].each{|k|
|
19
|
+
@@commands[k]=[] if(!@@commands.has_key?(k))
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.quiet
|
24
|
+
@@quiet
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.execute value
|
28
|
+
if(value.respond_to?(:execute))
|
29
|
+
value.update if value.respond_to?(:update)
|
30
|
+
value.execute
|
31
|
+
else
|
32
|
+
if(value.is_a?(String))
|
33
|
+
puts `#{value}`
|
34
|
+
else
|
35
|
+
if(value.is_a?(Array))
|
36
|
+
value.each{|e| execute(e)}
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.execute_task task
|
43
|
+
if(Tasks.commands.has_key?(task))
|
44
|
+
puts "[:#{task}]" if(!Tasks.quiet)
|
45
|
+
Tasks.execute(Tasks.commands[task])
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
desc 'performs a git pull'
|
51
|
+
task :pull do Tasks.execute_task :pull; end
|
52
|
+
|
53
|
+
desc 'performs svn update'
|
54
|
+
task :update do Tasks.execute_task :update; end
|
55
|
+
|
56
|
+
desc 'performs setup commands'
|
57
|
+
task :setup do Tasks.execute_task :setup;end
|
58
|
+
|
59
|
+
desc 'performs build commands'
|
60
|
+
task :build do Tasks.execute_task :build;end
|
61
|
+
|
62
|
+
desc 'performs test commands'
|
63
|
+
task :test => [:build] do Tasks.execute_task :test;end
|
64
|
+
|
65
|
+
desc 'performs analyze commands'
|
66
|
+
task :analyze do Tasks.execute_task :analyze;end
|
67
|
+
|
68
|
+
desc 'performs documentation commands'
|
69
|
+
task :doc do Tasks.execute_task :doc;end
|
70
|
+
|
71
|
+
desc 'performs clean commands'
|
72
|
+
task :clean do Tasks.execute_task :clean;end
|
73
|
+
|
74
|
+
desc 'performs publish commands'
|
75
|
+
task :publish => [:test] do Tasks.execute_task :publish; end
|
76
|
+
|
77
|
+
desc 'performs clobber commands'
|
78
|
+
task :clobber => [:clean] do Tasks.execute_task :clobber;end
|
79
|
+
|
80
|
+
desc 'adds source files to git or subversion'
|
81
|
+
task :add do Tasks.execute_task :add;end
|
82
|
+
|
83
|
+
desc 'commits source files to git or subversion'
|
84
|
+
task :commit do Tasks.execute_task :commit;end
|
85
|
+
|
86
|
+
desc 'performs a git push'
|
87
|
+
task :push do Tasks.execute_task :push;end
|
data/spec/dev_tasks_spec.rb
CHANGED
@@ -1,45 +1,19 @@
|
|
1
1
|
require_relative '../lib/dev_tasks.rb'
|
2
|
+
require 'dev_commands'
|
2
3
|
|
3
4
|
describe DevTasks do
|
4
|
-
it "should be able to load example ruby project" do
|
5
|
-
Dir.chdir("#{File.dirname(__FILE__)}/test_data/ruby_projects/helloGem") do
|
6
|
-
ruby_dev_task=DevTasks.new
|
7
|
-
expect(ruby_dev_task[:name]).to eq('helloGem')
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
if(RUBY_PLATFORM.include?("mingw"))
|
12
|
-
|
13
|
-
it "should be able to load example C# project" do
|
14
|
-
Dir.chdir("#{File.dirname(__FILE__)}/test_data/csharp_projects/helloDll") do
|
15
|
-
dev_task=DevTasks.new
|
16
|
-
expect(dev_task[:name]).to eq('helloDll')
|
17
|
-
end
|
18
|
-
dir="#{File.dirname(__FILE__)}/test_data/csharp_projects/helloDll"
|
19
|
-
expect(File.exists?(dir)).to eq(true)
|
20
|
-
Environment.rake(dir,"default",false)
|
21
|
-
|
22
|
-
if(!RUBY_PLATFORM.include?("mingw"))
|
23
|
-
expect(File.exists?("#{dir}/bin/Net4.0/Debug/helloDll.dll")).to eq(true)
|
24
|
-
expect(File.exists?("#{dir}/bin/Net4.5/Release/helloDll.dll")).to eq(true)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
it "should be able to rake cpp static library" do
|
28
|
-
dir="#{File.dirname(__FILE__)}/test_data/cpp_projects/helloLib"
|
29
|
-
|
30
|
-
Environment.rake(dir,"clobber",false)
|
31
|
-
#File.exists?("#{dir}/bin").should eq(false)
|
32
5
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
expect(File.exists?("#{dir}/bin/v90/Release/helloLib.v9.lib")).to eq(true)
|
37
|
-
expect(File.exists?("#{dir}/bin/v120/Debug/helloLib.v12.lib")).to eq(true)
|
38
|
-
expect(File.exists?("#{dir}/bin/v120/Release/helloLib.v12.lib")).to eq(true)
|
39
|
-
end
|
6
|
+
it "should be able to define rake tasks for the gem-example" do
|
7
|
+
dir='spec/gem-example'
|
8
|
+
expect(File.exists?("#{dir}/rakefile.rb")).to eq(true)
|
40
9
|
|
41
|
-
|
42
|
-
|
43
|
-
|
10
|
+
Dir.chdir(dir) do
|
11
|
+
expect(Command.exit_code('rake default')).to eq(0)
|
12
|
+
expect(Command.exit_code('rake build')).to eq(0)
|
13
|
+
expect(File.exists?('gem-example-0.0.0.gem')).to eq(true)
|
14
|
+
expect(Command.exit_code('rake clobber')).to eq(0)
|
15
|
+
expect(File.exists?('gem-example-0.0.0.gem')).to eq(false)
|
16
|
+
expect(Command.output('rake -T').include?('rake build')).to eq(true)
|
17
|
+
end
|
44
18
|
end
|
45
19
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative('../../lib/dev_tasks.rb')
|
2
|
+
|
3
|
+
CLOBBER.include('*.gem')
|
4
|
+
Tasks.initialize(
|
5
|
+
{
|
6
|
+
:build => ['gem build gem-example.gemspec'],
|
7
|
+
:test => ['rspec'],
|
8
|
+
})
|
9
|
+
|
10
|
+
commands=
|
11
|
+
{
|
12
|
+
:build => ['gem build gem-example.gemspec'],
|
13
|
+
:test => ['rspec']
|
14
|
+
}
|
15
|
+
|
16
|
+
task :default => [:build,:test,:clobber]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dev_tasks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.39
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-01-
|
12
|
+
date: 2015-01-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -43,53 +43,32 @@ dependencies:
|
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: 0.0.13
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: dev_commands
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.0.26
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.0.26
|
46
62
|
description: defines rake tasks for ruby and C# projects
|
47
63
|
email: lou.parslow@gmail.com
|
48
64
|
executables: []
|
49
65
|
extensions: []
|
50
66
|
extra_rdoc_files: []
|
51
67
|
files:
|
52
|
-
- lib/add.rb
|
53
|
-
- lib/artifacts.x.rb
|
54
|
-
- lib/build.rb
|
55
|
-
- lib/color.rb
|
56
|
-
- lib/commands.rb
|
57
|
-
- lib/commit.rb
|
58
|
-
- lib/console.rb
|
59
|
-
- lib/dependencies.rb
|
60
68
|
- lib/dev_tasks.rb
|
61
|
-
- lib/
|
62
|
-
- lib/htmllog.rb
|
63
|
-
- lib/jsonlog.rb
|
64
|
-
- lib/logger.rb
|
65
|
-
- lib/msbuild.rb
|
66
|
-
- lib/publish.rb
|
67
|
-
- lib/pull.rb
|
68
|
-
- lib/push.rb
|
69
|
-
- lib/settings.rb
|
70
|
-
- lib/setup.rb
|
71
|
-
- lib/svnexports.rb
|
72
|
-
- lib/teardown.rb
|
73
|
-
- lib/test.rb
|
74
|
-
- lib/timer.rb
|
75
|
-
- lib/upgrade.rb
|
76
|
-
- lib/verify.rb
|
77
|
-
- lib/yamllog.rb
|
78
|
-
- lib/spec.json
|
79
|
-
- spec/dependencies_spec.rb
|
69
|
+
- lib/tasks.rb
|
80
70
|
- spec/dev_tasks_spec.rb
|
81
|
-
- spec/
|
82
|
-
- spec/msbuild_spec.rb
|
83
|
-
- spec/spec_helper.rb
|
84
|
-
- spec/test_data/cpp_projects/helloLib/rakefile.rb
|
85
|
-
- spec/test_data/csharp_projects/helloDll/rakefile.rb
|
86
|
-
- spec/test_data/ruby_projects/helloGem/rakefile.rb
|
87
|
-
- spec/test_data/csharp_projects/helloDll/helloDll.Net2.0.csproj
|
88
|
-
- spec/test_data/csharp_projects/helloDll/helloDll.Net3.5.csproj
|
89
|
-
- spec/test_data/csharp_projects/helloDll/helloDll.Net4.0.csproj
|
90
|
-
- spec/test_data/csharp_projects/helloDll/helloDll.Net4.5.csproj
|
91
|
-
- spec/test_data/csharp_projects/JsonNet.csproj
|
92
|
-
- spec/test_data/csharp_projects/JsonNet.Test.csproj
|
71
|
+
- spec/gem-example/rakefile.rb
|
93
72
|
- LICENSE
|
94
73
|
homepage: http://rubygems.org/gems/dev_tasks
|
95
74
|
licenses:
|
data/lib/add.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
#require_relative './commandarray.rb'
|
2
|
-
|
3
|
-
class Add #< CommandArray
|
4
|
-
|
5
|
-
# updates the commands in the Add CommandArray
|
6
|
-
#
|
7
|
-
# if a .git directory exists, the command 'git add -A -v' will be appended the Add Commands
|
8
|
-
# if a .svn directory exists, all DEV[:files][:source] files that are not tracked by subversion
|
9
|
-
# will have the appropriate svn add command appended to the Add Commands
|
10
|
-
def update
|
11
|
-
if(Dir.exists?(".git"))
|
12
|
-
DEV_TASKS[:files][:source].each{|f|
|
13
|
-
if(`git status #{f}`.include?('untracked'))
|
14
|
-
add "git add #{f} -v"
|
15
|
-
end
|
16
|
-
}
|
17
|
-
#if(`git status`.include?('untracked files present'))
|
18
|
-
# self.add 'git add -A -v'
|
19
|
-
#end
|
20
|
-
end
|
21
|
-
if(Dir.exists?(".svn") && defined?(DEV_TASKS))
|
22
|
-
DEV_TASKS[:files][:source].each{|f|
|
23
|
-
if(`svn status #{f}`.include?('?'))
|
24
|
-
add "svn add #{f}"
|
25
|
-
end
|
26
|
-
}
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
data/lib/artifacts.x.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require_relative('./dependencies.rb')
|
2
|
-
|
3
|
-
class Artifacts < Array
|
4
|
-
def initialize
|
5
|
-
# gem, dev_tasks-0.0.7.gem
|
6
|
-
Dir.glob('*.gemspec') {|f|
|
7
|
-
spec=Gem::Specification.load(f)
|
8
|
-
artifact="#{spec.name}-#{spec.version.to_s}.gem"
|
9
|
-
self << artifact if(!self.include?(artifact))
|
10
|
-
}
|
11
|
-
|
12
|
-
# C# dll, bin/Net4.0/QcNet.dll
|
13
|
-
Dir.glob("*.csproj").each{|p|
|
14
|
-
text = File.read(p)
|
15
|
-
# extract AssemblyName of form: <AssemblyName>MyLibrary.Test</AssemblyName>
|
16
|
-
assemblyName=text[/<AssemblyName>([\w\.]+)</,1]
|
17
|
-
outputType=text[/<OutputType>([\w\.]+)</,1]
|
18
|
-
outputPath=text[/Release[.\w\W]+<OutputPath>([\w\.\\]+)</,1]
|
19
|
-
if(!assemblyName.nil? && !outputPath.nil? && !assemblyName.include?("Test"))
|
20
|
-
|
21
|
-
extension="dll"
|
22
|
-
extension="exe" if(outputType=="WinExe" || outputType=="Exe")
|
23
|
-
|
24
|
-
artifact = "#{outputPath}\\#{assemblyName}.#{extension}".gsub("\\\\","\\").gsub('/','\\').gsub('\\','/')
|
25
|
-
|
26
|
-
self << artifact if(!self.include?(artifact))
|
27
|
-
|
28
|
-
# add in file dependencies
|
29
|
-
Dependencies.csharp_file_dependencies(text).each{|dep|
|
30
|
-
cs_dll_dep=dep.gsub(File.dirname(dep),File.dirname(artifact)).gsub('\\','/')
|
31
|
-
self << cs_dll_dep if(!self.include?(cs_dll_dep))
|
32
|
-
}
|
33
|
-
end
|
34
|
-
}
|
35
|
-
update
|
36
|
-
end
|
37
|
-
|
38
|
-
def update
|
39
|
-
# C++ dll,lib,h,hpp
|
40
|
-
if(Dir.glob("**/*.{vcproj,vcxproj}").length > 0)
|
41
|
-
Dir.glob("**/*.{lib,dll,h,hpp}").each{|f|
|
42
|
-
self << f
|
43
|
-
}
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
data/lib/build.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
require_relative './color.rb'
|
2
|
-
#require_relative './commandarray.rb'
|
3
|
-
require_relative './msbuild.rb'
|
4
|
-
|
5
|
-
class Build #< CommandArray
|
6
|
-
|
7
|
-
def update
|
8
|
-
if(defined?(DEV_TASKS))
|
9
|
-
msbuild=MSBuild.new
|
10
|
-
#glob='**/*.{gemspec,sln}'
|
11
|
-
#glob=DEV_TASKS[:build_glob] if(defined?(DEV_TASKS)) && DEV_TASKS.has_key?(:build_glob)
|
12
|
-
DEV_TASKS[:files][:build].each {|f|
|
13
|
-
self.add "gem build #{f}" if(f.include?('.gemspec'))
|
14
|
-
if(f.include?('.sln'))
|
15
|
-
vs_version=MSBuild.get_vs_version(f)
|
16
|
-
if File.exists? msbuild[vs_version]
|
17
|
-
MSBuild.get_configurations(f).each{ |configuration|
|
18
|
-
MSBuild.get_platforms(f).each{|platform|
|
19
|
-
Console.debug "configuration='#{configuration}', platform='#{platform}'"
|
20
|
-
self.add "\"#{msbuild[vs_version]}\" \"#{f}\" /nologo /p:Configuration=#{configuration} /p:Platform=\"#{platform}\""
|
21
|
-
}
|
22
|
-
}
|
23
|
-
end
|
24
|
-
end
|
25
|
-
}
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
data/lib/color.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
require_relative './settings.rb'
|
2
|
-
|
3
|
-
class Color
|
4
|
-
def self.bold
|
5
|
-
""
|
6
|
-
end
|
7
|
-
def self.cyan
|
8
|
-
""
|
9
|
-
end
|
10
|
-
def self.clear
|
11
|
-
""
|
12
|
-
end
|
13
|
-
def self.green
|
14
|
-
""
|
15
|
-
end
|
16
|
-
def self.yellow
|
17
|
-
""
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.white
|
21
|
-
""
|
22
|
-
end
|
23
|
-
end
|
data/lib/commands.rb
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
require_relative './build.rb'
|
2
|
-
require_relative './test.rb'
|
3
|
-
require_relative './add.rb'
|
4
|
-
require_relative './commit.rb'
|
5
|
-
require_relative './publish.rb'
|
6
|
-
require_relative './pull.rb'
|
7
|
-
require_relative './push.rb'
|
8
|
-
require_relative './setup.rb'
|
9
|
-
require_relative './upgrade.rb'
|
10
|
-
require_relative './timer.rb'
|
11
|
-
require_relative './verify.rb'
|
12
|
-
|
13
|
-
class Commands < Hash
|
14
|
-
attr_accessor :build
|
15
|
-
|
16
|
-
def initialize
|
17
|
-
self[:pull] = Pull.new if(Environment.scm=='git' && Environment.scm_origin.length > 0)
|
18
|
-
self[:upgrade] = Upgrade.new
|
19
|
-
self[:setup] = Setup.new
|
20
|
-
self[:build] = Build.new
|
21
|
-
self[:test] = Test.new
|
22
|
-
self[:add] = Add.new
|
23
|
-
self[:commit] = Commit.new
|
24
|
-
self[:push] = Push.new
|
25
|
-
self[:verify] = Verify.new
|
26
|
-
self[:publish] = Publish.new
|
27
|
-
end
|
28
|
-
|
29
|
-
def update
|
30
|
-
self[:upgrade].update
|
31
|
-
self[:setup].update
|
32
|
-
self[:build].update
|
33
|
-
self[:verify].update
|
34
|
-
self[:publish].update
|
35
|
-
end
|
36
|
-
|
37
|
-
def execute_task task
|
38
|
-
sym_task = task.to_sym
|
39
|
-
if(self.has_key?(sym_task))
|
40
|
-
self[sym_task].update if self[sym_task].respond_to?(:update)
|
41
|
-
if(self[sym_task].length>0)
|
42
|
-
Logger.start_task task
|
43
|
-
self[sym_task].execute
|
44
|
-
Logger.end_task task
|
45
|
-
else
|
46
|
-
self.delete sym_task
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
|
52
|
-
def show
|
53
|
-
self.each do |key,array|
|
54
|
-
if(array.length > 0)
|
55
|
-
puts key
|
56
|
-
array.each {|v|
|
57
|
-
puts " " + Color.green + v + Color.clear + " "
|
58
|
-
}
|
59
|
-
end
|
60
|
-
end
|
61
|
-
puts " "
|
62
|
-
end
|
63
|
-
end
|
data/lib/commit.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
#require_relative('./commandarray.rb')
|
2
|
-
require_relative('./environment.rb')
|
3
|
-
|
4
|
-
class Commit #< CommandArray
|
5
|
-
def update
|
6
|
-
if(Dir.exists?(".git") && `git config --list`.include?('user.name='))
|
7
|
-
if(`git status`.include?('nothing to commit') || `git status`.include?('untracked files present'))
|
8
|
-
# skip
|
9
|
-
else
|
10
|
-
if(File.exists?('commit.message') && File.read('commit.message').gsub(/\s+/, "").length > 0)
|
11
|
-
self.add "git commit -a -v -m \"#{File.read('commit.message')}\""
|
12
|
-
self.add "<%File.open('commit.message','w'){|f|f.write('')}%>"
|
13
|
-
else
|
14
|
-
self.add 'git commit -a -v -m "commit all"'
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
if(Dir.exists?(".svn"))
|
19
|
-
self.add 'svn commit -m"commit all"'
|
20
|
-
self.add "svn update"
|
21
|
-
self.add '<%puts "Last Changed Rev: " + Environment.svn_latest_revision%>'
|
22
|
-
self.add "<%DEV_TASKS[:commands][:verify].update%>"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|