dev 1.0.10 → 1.0.11
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/bin/dev +31 -0
- data/lib/dev.rb +1 -0
- data/lib/dev/Environment.rb +13 -0
- data/lib/dev/Project.rb +23 -4
- data/lib/dev/SystemCall.rb +29 -10
- data/lib/dev/Tasks.rb +21 -8
- metadata +45 -10
data/bin/dev
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Copyright 2012 Lou Parslow
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
#
|
18
|
+
|
19
|
+
begin
|
20
|
+
require 'rubygems'
|
21
|
+
rescue LoadError
|
22
|
+
end
|
23
|
+
|
24
|
+
require 'dev'
|
25
|
+
|
26
|
+
puts "welcome to dev"
|
27
|
+
|
28
|
+
puts ("no arguments passed") if(ARGV.length == 0)
|
29
|
+
ARGV.each do|a|
|
30
|
+
puts "Argument: #{a}"
|
31
|
+
end
|
data/lib/dev.rb
CHANGED
data/lib/dev/Environment.rb
CHANGED
@@ -34,6 +34,19 @@ class Environment
|
|
34
34
|
def self.expand_string_variables(str)
|
35
35
|
eval("\"#{str.gsub('"','\"')}\"")
|
36
36
|
end
|
37
|
+
|
38
|
+
def self.s_to_hash(str)
|
39
|
+
# check for hash
|
40
|
+
hash=nil
|
41
|
+
if(str.strip.index('{')==0 && str.strip.index('}')==str.strip.length-1)
|
42
|
+
begin
|
43
|
+
eval("hash=#{str.strip}")
|
44
|
+
rescue
|
45
|
+
hash=nil
|
46
|
+
end
|
47
|
+
end
|
48
|
+
hash
|
49
|
+
end
|
37
50
|
end
|
38
51
|
|
39
52
|
end # module Dev
|
data/lib/dev/Project.rb
CHANGED
@@ -21,6 +21,7 @@ class Project < Hash
|
|
21
21
|
return
|
22
22
|
end
|
23
23
|
puts_debug "found directives for #{string_name}: #{self.get_value(string_name).to_s}"
|
24
|
+
puts " "
|
24
25
|
puts string_name.foreground(:yellow).bright
|
25
26
|
self.get_value(string_name).each{ |c|
|
26
27
|
# expand the command here....
|
@@ -29,10 +30,18 @@ class Project < Hash
|
|
29
30
|
#puts "Command: " + c
|
30
31
|
eval(c.gsub("<%","").gsub("%>",""))
|
31
32
|
else
|
32
|
-
|
33
|
+
# can the command be converted to a hash?
|
34
|
+
hash=Dev::Environment.s_to_hash(command)
|
35
|
+
call=nil
|
36
|
+
if(hash.nil?)
|
37
|
+
call=Dev::SystemCall.new(command)
|
38
|
+
else
|
39
|
+
call=Dev::SystemCall.new(hash)
|
40
|
+
end
|
33
41
|
call.puts_summary
|
34
42
|
end
|
35
43
|
}
|
44
|
+
puts " "
|
36
45
|
end
|
37
46
|
|
38
47
|
def method_missing( name, *args )
|
@@ -123,6 +132,10 @@ class Project < Hash
|
|
123
132
|
end
|
124
133
|
|
125
134
|
def info
|
135
|
+
[ "file_count","loc" ].each do |k|
|
136
|
+
puts_debug "set_default_value(#{k})"
|
137
|
+
set_default_value(k)
|
138
|
+
end
|
126
139
|
puts " "
|
127
140
|
Hash.print_hash("",self)
|
128
141
|
puts " "
|
@@ -177,7 +190,7 @@ class Project < Hash
|
|
177
190
|
unless dep_hash.nil?
|
178
191
|
dep_hash.each do |key,value|
|
179
192
|
if value.kind_of?(Hash)
|
180
|
-
# potential hash keys: uri, dir
|
193
|
+
# potential hash keys: uri, dir, rake
|
181
194
|
# uri is required
|
182
195
|
unless value.get_value("uri").nil?
|
183
196
|
uri=expand_project_variables(value.get_value("uri"))
|
@@ -191,6 +204,10 @@ class Project < Hash
|
|
191
204
|
|
192
205
|
array << "svn export " + expand_project_variables(value.get_value("uri")) + " " + dir unless File.exists?(dir)
|
193
206
|
array << "<%puts ' #{dir} exists.'%>" if File.exists?(dir)
|
207
|
+
|
208
|
+
unless value.get_value("rake").nil?
|
209
|
+
array << "{cmd: 'rake #{value.get_value("rake").to_s}', dir: '#{dir}'}"
|
210
|
+
end
|
194
211
|
end
|
195
212
|
end
|
196
213
|
end
|
@@ -212,7 +229,7 @@ class Project < Hash
|
|
212
229
|
Dir.glob("*.csproj").each{|cs|array<<"<paths,msbuild> #{cs} <x86_release_compile_flags>"}
|
213
230
|
end
|
214
231
|
if(key=="test")
|
215
|
-
Dir.glob("*.gemspec").each { |gs| array << "gem uninstall #{gs.gsub('.gemspec','')} -v #{self[:version]}" } if self[:type]=="gem"
|
232
|
+
#Dir.glob("*.gemspec").each { |gs| array << "gem uninstall #{gs.gsub('.gemspec','')} -v #{self[:version]}" } if self[:type]=="gem"
|
216
233
|
Dir.glob("*.gemspec").each { |gs| array << "gem install ./#{gs.gsub('.gemspec','')}-#{self[:version]}.gem" } if self[:type]=="gem"
|
217
234
|
if self[:type]=="C#"
|
218
235
|
Dir.glob("*.{Test.csproj,Features.csproj}").each { |cs|
|
@@ -243,11 +260,13 @@ class Project < Hash
|
|
243
260
|
|
244
261
|
self[:type]="C#" if self[:type].nil?
|
245
262
|
|
246
|
-
[ "version","dev_root","src_glob","
|
263
|
+
[ "version","dev_root","src_glob","scm_type",
|
247
264
|
"paths","setup","compile","test","features","commit" ].each do |k|
|
248
265
|
puts_debug "set_default_value(#{k})"
|
249
266
|
set_default_value(k)
|
250
267
|
end
|
268
|
+
|
269
|
+
generate_tasks(self)
|
251
270
|
end
|
252
271
|
end
|
253
272
|
end # module Dev
|
data/lib/dev/SystemCall.rb
CHANGED
@@ -5,16 +5,31 @@ require 'tmpdir'
|
|
5
5
|
module Dev
|
6
6
|
|
7
7
|
class SystemCall
|
8
|
-
attr_accessor :output,:error,:status,:command,:start_time,:end_time,:timed_out
|
8
|
+
attr_accessor :output,:error,:status,:command,:start_time,:end_time,:timed_out,:dir
|
9
9
|
|
10
|
-
def initialize(cmd)
|
10
|
+
def initialize(cmd)
|
11
|
+
if(cmd.kind_of?(Hash))
|
12
|
+
@command=cmd[:cmd]
|
13
|
+
@dir=cmd[:dir] unless cmd[:dir].nil?
|
14
|
+
else
|
15
|
+
@command=cmd
|
16
|
+
end
|
17
|
+
execute(@command);
|
18
|
+
end
|
19
|
+
|
11
20
|
def elapsed; @end_time-@start_time; end
|
12
|
-
def execute(cmd)
|
13
|
-
|
21
|
+
def execute(cmd)
|
22
|
+
#@command=cmd
|
14
23
|
@start_time=Time.now
|
15
24
|
filename=Dir.tmpdir + "/" + (0...8).map{65.+(rand(25)).chr}.join
|
16
25
|
begin
|
17
|
-
|
26
|
+
if(@dir.nil?)
|
27
|
+
system("#{@command} >#{filename}.out 2>#{filename}.err")
|
28
|
+
else
|
29
|
+
Dir.chdir(dir) do
|
30
|
+
system("#{@command} >#{filename}.out 2>#{filename}.err")
|
31
|
+
end
|
32
|
+
end
|
18
33
|
File.open("#{filename}.out",'r') {|f|
|
19
34
|
@output = f.read
|
20
35
|
f.close
|
@@ -41,13 +56,17 @@ class SystemCall
|
|
41
56
|
|
42
57
|
def puts_summary
|
43
58
|
if(@status != 0)
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
59
|
+
summary = " [".foreground(:cyan) + "X".foreground(:red).bright + "]".foreground(:cyan) + " system(\"" + @command.foreground(:green) + "\") has exit status of " + @status.to_s
|
60
|
+
summary += " dir: " + @dir unless @dir.nil?
|
61
|
+
puts summary
|
62
|
+
puts @output
|
63
|
+
warn @error
|
64
|
+
throw "exit status was " + @status.to_s
|
48
65
|
else
|
49
66
|
elapsed_str="[" + "%.0f" %(elapsed) + "s]"
|
50
|
-
|
67
|
+
summary = " [".foreground(:cyan) + "+".foreground(:green) + "]".foreground(:cyan) + " system(\"" + @command.foreground(:green) + "\") " + elapsed_str.foreground(:cyan)
|
68
|
+
summary += " dir: " + @dir unless @dir.nil?
|
69
|
+
puts summary
|
51
70
|
end
|
52
71
|
end
|
53
72
|
|
data/lib/dev/Tasks.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
puts_debug "read " + __FILE__.foreground(:green)
|
2
2
|
|
3
3
|
require 'rake'
|
4
|
-
|
4
|
+
include Rake::DSL
|
5
5
|
#desc "checks for a sane environment"
|
6
6
|
#task :sanity do
|
7
7
|
# if(!defined?(PROJECT))
|
@@ -14,15 +14,28 @@ require 'rake/clean'
|
|
14
14
|
CLEAN.include('*.gem','doc/*','obj/*')
|
15
15
|
CLOBBER.include('bin','doc','obj')
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
def generate_tasks(project)
|
18
|
+
unless project.nil?
|
19
|
+
unless task_defined("setup")
|
20
|
+
desc "setup the project environment"
|
21
|
+
task :setup do
|
22
|
+
PROJECT.setup
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
if project[:type]=="gem" || project[:type]=="ruby"
|
27
|
+
unless task_defined("features")
|
28
|
+
desc "tests cucumber features"
|
29
|
+
task :features do; PROJECT.features; end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
20
34
|
end
|
21
35
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
end
|
36
|
+
|
37
|
+
|
38
|
+
|
26
39
|
|
27
40
|
desc "display information about the rakefile"
|
28
41
|
task :info do
|
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.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-02-03 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &27112740 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *27112740
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: semver
|
27
|
-
requirement: &
|
27
|
+
requirement: &27112464 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *27112464
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: countloc
|
38
|
-
requirement: &
|
38
|
+
requirement: &27112212 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *27112212
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rainbow
|
49
|
-
requirement: &
|
49
|
+
requirement: &27111960 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,44 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *27111960
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rspec
|
60
|
+
requirement: &27111708 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *27111708
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: cucumber
|
71
|
+
requirement: &27111456 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *27111456
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: bundler
|
82
|
+
requirement: &27111204 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *27111204
|
58
91
|
description: development tasks
|
59
92
|
email: lou.parslow@gmail.com
|
60
|
-
executables:
|
93
|
+
executables:
|
94
|
+
- dev
|
61
95
|
extensions: []
|
62
96
|
extra_rdoc_files: []
|
63
97
|
files:
|
@@ -70,6 +104,7 @@ files:
|
|
70
104
|
- lib/dev/SystemCall.rb
|
71
105
|
- lib/dev/Tasks.rb
|
72
106
|
- lib/dev.rb
|
107
|
+
- bin/dev
|
73
108
|
homepage: http://rubygems.org/gems/dev
|
74
109
|
licenses: []
|
75
110
|
post_install_message:
|