dev 1.0.247 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +4 -4
- data/lib/dev.rb +8 -60
- metadata +26 -69
- data/README +0 -103
- data/bin/devgem +0 -71
- data/lib/dev/Array.rb +0 -17
- data/lib/dev/BoostBuild.rb +0 -94
- data/lib/dev/Commands.rb +0 -185
- data/lib/dev/Database.rb +0 -134
- data/lib/dev/Dep.rb +0 -117
- data/lib/dev/Deps.rb +0 -44
- data/lib/dev/Environment.rb +0 -142
- data/lib/dev/Hash.rb +0 -92
- data/lib/dev/MsBuild.rb +0 -17
- data/lib/dev/Paths.rb +0 -50
- data/lib/dev/Project.rb +0 -175
- data/lib/dev/Scm.rb +0 -125
- data/lib/dev/Svn.rb +0 -55
- data/lib/dev/SystemCall.rb +0 -288
- data/lib/dev/Tasks.rb +0 -140
- data/lib/dev/cmd/Build.rb +0 -112
- data/lib/dev/cmd/Commit.rb +0 -19
- data/lib/dev/cmd/Compile.rb +0 -35
- data/lib/dev/cmd/DeepPull.rb +0 -56
- data/lib/dev/cmd/Info.rb +0 -16
- data/lib/dev/cmd/Pull.rb +0 -46
- data/lib/dev/cmd/Replace.rb +0 -69
- data/lib/dev/cmd/Setup.rb +0 -28
- data/lib/dev/cmd/Test.rb +0 -34
- data/lib/dev/cmd/Update.rb +0 -10
data/lib/dev/Array.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
class Array
|
2
|
-
# remove all auto generated entries
|
3
|
-
def strip_auto_entries
|
4
|
-
keep=Array.new
|
5
|
-
self.each { |e|
|
6
|
-
if(!e.nil?)
|
7
|
-
h=nil
|
8
|
-
h=e if e.kind_of?(Hash)
|
9
|
-
h=Dev::Environment.s_to_hash(e)
|
10
|
-
keep << e if(!h.nil? && (!h.has_key?(:auto) || !h[:auto]))
|
11
|
-
keep << e if e.kind_of?(String) && !e.include?('{')
|
12
|
-
end
|
13
|
-
}
|
14
|
-
self.clear
|
15
|
-
keep.each{|e| self << e}
|
16
|
-
end
|
17
|
-
end
|
data/lib/dev/BoostBuild.rb
DELETED
@@ -1,94 +0,0 @@
|
|
1
|
-
module Dev
|
2
|
-
class BoostBuild
|
3
|
-
|
4
|
-
@@default_toolset=nil
|
5
|
-
def self.setDefaultToolset toolset
|
6
|
-
@@default_toolset=toolset
|
7
|
-
end
|
8
|
-
|
9
|
-
def self.defaultToolset
|
10
|
-
if(defined?(BOOSTBUILD_DEFAULT_TOOLSET))
|
11
|
-
puts_debug "BOOSTBUILD_DEFAULT_TOOLSET=#{BOOSTBUILD_DEFAULT_TOOLSET}"
|
12
|
-
return BOOSTBUILD_DEFAULT_TOOLSET
|
13
|
-
end
|
14
|
-
return @@default_toolset if !@@default_toolset.nil?
|
15
|
-
begin
|
16
|
-
text=''
|
17
|
-
Dir.chdir(DEV_ROOT) { |dir|
|
18
|
-
text=`b2 --debug-configuration`
|
19
|
-
}
|
20
|
-
toolset=''
|
21
|
-
text.scan(/<toolset>([\.\w-]+)/).each{ | var_match |
|
22
|
-
toolset=var_match[0].to_s
|
23
|
-
}
|
24
|
-
return toolset
|
25
|
-
rescue
|
26
|
-
return nil
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.getLibraryProperties(filename)
|
31
|
-
#words=filename.split('-')
|
32
|
-
#flags=words[2] if words.length == 4
|
33
|
-
#flags = flags + "-" + words[3] if words.length == 5
|
34
|
-
#result="<toolset>" + getToolset(words[1]) if words.length==4
|
35
|
-
link="static"
|
36
|
-
link="shared" if filename.index("lib") != 0 && !filename.include?(".a")
|
37
|
-
link="shared" if filename.include?(".so") || filename.include?(".dylib")
|
38
|
-
result = " <link>" + link + " "
|
39
|
-
variant = "release"
|
40
|
-
variant = "debug" if filename.include?("d.") || filename.include?("-gd-")
|
41
|
-
#result = result + " <variant>release " if !flags.include?("d")
|
42
|
-
#result = result + " <variant>debug " if flags.include?("d")
|
43
|
-
result = result + " <variant>#{variant} "
|
44
|
-
threading="single"
|
45
|
-
threading="multi" if filename.include?("-mt")
|
46
|
-
#result = result + " <threading>multi " if flags.include?("mt")
|
47
|
-
#result = result + " <threading>single " if !flags.include?("mt")
|
48
|
-
result = result + " <threading>#{threading} "
|
49
|
-
#result = result + " <runtime-link>static " if flags.include?("s")
|
50
|
-
result = result + " <runtime-debugging>on " if filename.include?('-gd') #if flags.include?("g")
|
51
|
-
result = result + ";"
|
52
|
-
end
|
53
|
-
|
54
|
-
def self.buildJamfile(directory)
|
55
|
-
jamfilename=directory+"/Jamfile"
|
56
|
-
if(File.exists?(jamfilename))
|
57
|
-
puts "Jamfile already exists."
|
58
|
-
return
|
59
|
-
end
|
60
|
-
if(File.exists?(directory))
|
61
|
-
Dir.chdir(directory) do
|
62
|
-
File.open(jamfilename,'w') { |jamfile|
|
63
|
-
Dir.glob("*boost_*").each {|f|
|
64
|
-
jamfile.puts getJamfileLine(f)
|
65
|
-
|
66
|
-
# add extra <link>shared entry for windows
|
67
|
-
line = getJamfileLine(f)
|
68
|
-
if(line.include?("<link>static") && line.include?("-vc") && line.include?(".lib"))
|
69
|
-
line = line.gsub("<link>static","<link>shared")
|
70
|
-
jamfile.puts line
|
71
|
-
end
|
72
|
-
}
|
73
|
-
}
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def self.getJamfileLine(filename)
|
79
|
-
words=filename.split('-')
|
80
|
-
library = words[0]
|
81
|
-
library = library[3,library.length-3] if library.index("lib") == 0
|
82
|
-
return "lib " + library + " : : <file>./" + filename + " " + getLibraryProperties(filename)
|
83
|
-
end
|
84
|
-
|
85
|
-
def self.getToolset(name)
|
86
|
-
toolset = "msvc"
|
87
|
-
toolset = "darwin-4.2.1" if name=='xgcc42'
|
88
|
-
toolset = "msvc-9.0" if name=='vc90'
|
89
|
-
toolset = "msvc-10.0" if name=='vc100'
|
90
|
-
toolset = "msvc-11.0" if name=='vc110'
|
91
|
-
return toolset
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
data/lib/dev/Commands.rb
DELETED
@@ -1,185 +0,0 @@
|
|
1
|
-
if(RUBY_VERSION=="1.8.7")
|
2
|
-
commandArray=["Compile","Replace","Setup","Test","Commit","Info","Update","Build"]
|
3
|
-
else
|
4
|
-
commandArray=["Compile","Replace","Setup","Test","Commit","Info","Update","Pull","DeepPull","Build"]
|
5
|
-
end
|
6
|
-
commandArray.each { |f|
|
7
|
-
if(RUBY_VERSION=="1.8.7")
|
8
|
-
require("#{DEV_FILEPATH}/dev/cmd/#{f}.rb")
|
9
|
-
else
|
10
|
-
require_relative("cmd/#{f}.rb")
|
11
|
-
end
|
12
|
-
}
|
13
|
-
|
14
|
-
module Dev
|
15
|
-
class Commands < Hash
|
16
|
-
|
17
|
-
def initialize
|
18
|
-
self[:setup]=Dev::Cmd::Setup.new
|
19
|
-
self[:replace]=Dev::Cmd::Replace.new
|
20
|
-
self[:compile]=Dev::Cmd::Compile.new
|
21
|
-
self[:test]=Dev::Cmd::Test.new
|
22
|
-
self[:commit]=Dev::Cmd::Commit.new
|
23
|
-
self[:update]=Dev::Cmd::Update.new
|
24
|
-
if(RUBY_VERSION != "1.8.7")
|
25
|
-
self[:pull]=Dev::Cmd::Pull.new
|
26
|
-
self[:deep_pull]=Dev::Cmd::DeepPull.new
|
27
|
-
end
|
28
|
-
refresh
|
29
|
-
end
|
30
|
-
|
31
|
-
def refresh
|
32
|
-
puts_debug "Dev::Command.refresh"
|
33
|
-
start_time=Time.now
|
34
|
-
self[:setup].refresh(DEV[:dep]) if self[:setup].respond_to?("refresh")
|
35
|
-
self[:replace].refresh(DEV[:dep]) if self[:replace].respond_to?("refresh")
|
36
|
-
self[:compile].refresh if self[:compile].respond_to?("refresh")
|
37
|
-
self[:test].refresh if self[:test].respond_to?("refresh")
|
38
|
-
self[:commit].refresh if self[:commit].respond_to?("refresh")
|
39
|
-
self[:update].refresh if self[:update].respond_to?("refresh")
|
40
|
-
if(RUBY_VERSION != "1.8.7")
|
41
|
-
self[:pull].refresh if self[:pull].respond_to?("refresh")
|
42
|
-
self[:deep_pull].refresh if self[:deep_pull].respond_to?("refresh")
|
43
|
-
end
|
44
|
-
puts_debug "Commands refresh elapsed time " + (Time.now-start_time).to_s
|
45
|
-
end
|
46
|
-
|
47
|
-
def info; Dev::Cmd::Info.execute; end
|
48
|
-
def setup; execute_method "setup"; end
|
49
|
-
def compile; execute_method "compile"; end
|
50
|
-
def test; execute_method "test"; end
|
51
|
-
def push; Dev::Cmd::Push.execute; end
|
52
|
-
def pull; Dev::Cmd::Pull.execute; end
|
53
|
-
def deep_pull; Dev::Cmd::DeepPull.execute; end
|
54
|
-
def update;execute_method("update");end
|
55
|
-
def replace
|
56
|
-
self[:replace].execute if self[:replace].respond_to?("execute")
|
57
|
-
end
|
58
|
-
|
59
|
-
def execute_method(name)
|
60
|
-
string_name=name.to_s
|
61
|
-
puts_debug "method_missing name=" + string_name
|
62
|
-
|
63
|
-
puts " no directives defined for #{string_name}" if self.get_value(string_name).nil? && string_name=="pull"
|
64
|
-
return if(self.get_value(string_name).nil?)
|
65
|
-
puts " no directives defined for #{string_name}" if self.get_value(string_name).length < 1
|
66
|
-
return if self.get_value(string_name).length < 1
|
67
|
-
|
68
|
-
value=self.get_value(string_name)
|
69
|
-
if value.kind_of?(Hash)
|
70
|
-
value.each { |name,value| Dev::Commands.execute_cmd(value); sleep(0.5) }
|
71
|
-
else
|
72
|
-
value.each { |c| Dev::Commands.execute_cmd(c); sleep(0.5) }
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
def execute(c)
|
77
|
-
Dev::Commands::execute_cmd(c)
|
78
|
-
end
|
79
|
-
def self.execute_cmd(c)
|
80
|
-
# expand the command here....
|
81
|
-
command=Dev::Environment.expand_command(c)
|
82
|
-
puts_debug "command: " + command.to_s + " (in Project.execute_cmd)"
|
83
|
-
if c.include?('<%') && c.include?('%>')
|
84
|
-
#puts "Command: " + c
|
85
|
-
eval(c.gsub("<%","").gsub("%>",""))
|
86
|
-
else
|
87
|
-
# is the command a hash?
|
88
|
-
hash=c if c.kind_of?(Hash)
|
89
|
-
# can the command be converted to a hash?
|
90
|
-
hash=Dev::Environment.s_to_hash(command) if hash.nil?
|
91
|
-
call=nil
|
92
|
-
if(hash.nil?)
|
93
|
-
call=Dev::SystemCall.new(command)
|
94
|
-
else
|
95
|
-
call=Dev::SystemCall.new(hash)
|
96
|
-
end
|
97
|
-
call.puts_summary
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
def add
|
102
|
-
unless DEV[:src_glob].nil?
|
103
|
-
scm = Dev::Scm.new
|
104
|
-
return if scm.scm_type == "none"
|
105
|
-
if DEV[:src_glob].kind_of?(Hash)
|
106
|
-
DEV[:src_glob].each do |name,value|
|
107
|
-
puts " adding files " + value.to_s
|
108
|
-
scm.add_file_glob(value)
|
109
|
-
end
|
110
|
-
else
|
111
|
-
puts " adding files " + DEV[:src_glob].to_s
|
112
|
-
scm.add_file_glob(DEV[:src_glob])
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
def commit
|
118
|
-
scm = Dev::Scm.new
|
119
|
-
return if scm.scm_type == "none"
|
120
|
-
puts " no differences detected" unless has_diff
|
121
|
-
execute_method("commit") if has_diff
|
122
|
-
#if File.exists?(".svn")
|
123
|
-
if Scm.get_default_scm_type == "svn"
|
124
|
-
call=Dev::SystemCall.new('svn update')
|
125
|
-
call=Dev::SystemCall.new('svn info')
|
126
|
-
url = call.output.match(/URL: ([\d\w\.\:\/-]+)/)[1]
|
127
|
-
rev = call.output.match(/Last Changed Rev: ([\d]+)/)[1]
|
128
|
-
puts " #{url}@#{rev}"
|
129
|
-
end
|
130
|
-
FileUtils.rm "commit.message" if File.exists?("commit.message")
|
131
|
-
end
|
132
|
-
|
133
|
-
def check
|
134
|
-
puts " default.taskstamp." + DEV.context + " exists." if File.exists?("default.taskstamp."+ DEV.context)
|
135
|
-
puts " default.taskstamp." + DEV.context + " does not exist" unless File.exists?("default.taskstamp." +DEV.context)
|
136
|
-
|
137
|
-
begin
|
138
|
-
hasdiff = has_diff
|
139
|
-
rescue
|
140
|
-
puts "has_diff threw an exception."
|
141
|
-
end
|
142
|
-
|
143
|
-
puts " no differences detected." unless hasdiff
|
144
|
-
puts " detected differences." if hasdiff
|
145
|
-
|
146
|
-
if File.exists?("default.taskstamp."+DEV.context) && !hasdiff
|
147
|
-
#puts " nothing to do"
|
148
|
-
update
|
149
|
-
exit
|
150
|
-
end
|
151
|
-
|
152
|
-
#if !has_diff and File.exists?("default.taskstamp."+context)
|
153
|
-
# puts " no differences detected."
|
154
|
-
# puts " default.taskstamp." + context + " exists."
|
155
|
-
# exit
|
156
|
-
#end
|
157
|
-
#puts " detected differences" if has_diff
|
158
|
-
#puts " default.taskstamp." + context + " does not exist" unless File.exists?("default.taskstamp." + context)
|
159
|
-
end
|
160
|
-
|
161
|
-
def has_diff
|
162
|
-
call=nil
|
163
|
-
|
164
|
-
if DEV[:scm_type] == "git"
|
165
|
-
call=Dev::SystemCall.new('git status')
|
166
|
-
return true if call.output.include?("new file:")
|
167
|
-
return true if call.output.include?("deleted:")
|
168
|
-
return true if call.output.include?("modified:")
|
169
|
-
return false
|
170
|
-
end
|
171
|
-
|
172
|
-
#call=Dev::SystemCall.new('git diff --name-only') if File.exists?(".git")
|
173
|
-
call=Dev::SystemCall.new('svn diff') if Scm.get_default_scm_type == "svn" #if File.exists?(".svn")
|
174
|
-
|
175
|
-
unless call.nil? || call.output.length==0
|
176
|
-
puts_debug call.output
|
177
|
-
return true # differences detected
|
178
|
-
else
|
179
|
-
return false # no differences
|
180
|
-
end
|
181
|
-
end
|
182
|
-
end # class Tasks
|
183
|
-
end # module Dev
|
184
|
-
|
185
|
-
CMD=Dev::Commands.new()
|
data/lib/dev/Database.rb
DELETED
@@ -1,134 +0,0 @@
|
|
1
|
-
if(RUBY_VERSION != "1.8.7")
|
2
|
-
require 'sqlite3'
|
3
|
-
|
4
|
-
module Dev
|
5
|
-
#
|
6
|
-
# Branches table
|
7
|
-
# Name text e.g. google/devgem/trunk
|
8
|
-
# Uri text e.g. https://devgem.googlecode.com/svn/trunk
|
9
|
-
#
|
10
|
-
# create table Branches(Name text,Uri text,UNIQUE(Name));
|
11
|
-
#
|
12
|
-
class Database
|
13
|
-
attr_accessor :db
|
14
|
-
|
15
|
-
def self.filename
|
16
|
-
return Dev::Environment.dev_root + "/dev.db"
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.get_table_names(filename)
|
20
|
-
names=Array.new
|
21
|
-
db = SQLite3::Database.new filename
|
22
|
-
db.execute("select name from sqlite_master where type='table' ORDER BY name") do |row|
|
23
|
-
names << row[0]
|
24
|
-
end
|
25
|
-
return names
|
26
|
-
end
|
27
|
-
|
28
|
-
def initialize
|
29
|
-
filename=Dev::Database.filename
|
30
|
-
table_names=Dev::Database.get_table_names(filename)
|
31
|
-
@db = SQLite3::Database.new filename
|
32
|
-
@db.execute("create table Branches(Name text,Uri text,UNIQUE(Name));") if !table_names.include? "Branches"
|
33
|
-
|
34
|
-
columns=""
|
35
|
-
[:uri,:revision,:dir,:user,:machine,:ruby_version,:ruby_platform,:cmd,:status,:start_time,:end_time,:elapsed,:timeout,:timed_out,:output,:error].each { |s|
|
36
|
-
columns="#{columns}," if columns.length > 0
|
37
|
-
columns="#{columns}#{s.to_s} text"
|
38
|
-
}
|
39
|
-
@db.execute("create table Results(#{columns});") if ! table_names.include? "Results"
|
40
|
-
@db.close
|
41
|
-
@db=nil
|
42
|
-
end
|
43
|
-
|
44
|
-
def set_branch_uri(name,uri)
|
45
|
-
@db = SQLite3::Database.new Dev::Database.filename
|
46
|
-
@db.execute("insert or replace into Branches (Name,Uri) VALUES ('#{name}','#{uri}');")
|
47
|
-
@db.close
|
48
|
-
@db=nil
|
49
|
-
end
|
50
|
-
|
51
|
-
def has_result(h)
|
52
|
-
results=get_results({:machine=>h[:machine],:user=>h[:user],:start_time=>h[:start_time]})
|
53
|
-
return true if results.length > 0
|
54
|
-
return false
|
55
|
-
end
|
56
|
-
|
57
|
-
def add_result(h)
|
58
|
-
columns=""
|
59
|
-
values=""
|
60
|
-
[:uri,:revision,:dir,:user,:machine,:ruby_version,:ruby_platform,:cmd,:status,:start_time,:end_time,:elapsed,:timeout,:timed_out,:output,:error].each { |s|
|
61
|
-
sval=""
|
62
|
-
sval=h[s].to_s if h.has_key?(s)
|
63
|
-
sval.gsub("'","''") # need to escape single quotes for sqlite
|
64
|
-
columns="#{columns}," if columns.length > 0
|
65
|
-
values="#{values}," if values.length > 0
|
66
|
-
columns="#{columns}#{s.to_s}"
|
67
|
-
values="#{values}'#{sval}'"
|
68
|
-
}
|
69
|
-
#puts "insert or replace into Results (#{columns}) VALUES (#{values});"
|
70
|
-
@db = SQLite3::Database.new Dev::Database.filename
|
71
|
-
@db.execute("insert or replace into Results (#{columns}) VALUES (#{values});")
|
72
|
-
@db.close
|
73
|
-
@db=nil
|
74
|
-
end
|
75
|
-
|
76
|
-
def get_results(where_hash)
|
77
|
-
array=Array.new
|
78
|
-
where=""
|
79
|
-
where_hash.each{ |k,v|
|
80
|
-
sval=v.to_s
|
81
|
-
sval.gsub("'","''") # need to escape single quotes for sqlite
|
82
|
-
where="#{where} AND " if where.length > 0
|
83
|
-
where="#{where}#{k.to_s}='#{sval}'"
|
84
|
-
}
|
85
|
-
|
86
|
-
columns=""
|
87
|
-
[:uri,:revision,:dir,:user,:machine,:ruby_version,:ruby_platform,:cmd,:status,:start_time,:end_time,:elapsed,:timeout,:timed_out,:output,:error].each { |s|
|
88
|
-
columns="#{columns}," if columns.length > 0
|
89
|
-
columns="#{columns}#{s.to_s}"
|
90
|
-
}
|
91
|
-
|
92
|
-
@db = SQLite3::Database.new Dev::Database.filename
|
93
|
-
@db.execute("select #{columns} from Results where #{where};") do |row|
|
94
|
-
h=Hash.new
|
95
|
-
index = 0
|
96
|
-
[:uri,:revision,:dir,:user,:machine,:ruby_version,:ruby_platform,:cmd,:status,:start_time,:end_time,:elapsed,:timeout,:timed_out,:output,:error].each { |s|
|
97
|
-
#puts "row[#{index}].to_s=#{row[index].to_s}"
|
98
|
-
h[s]=row[index].to_s
|
99
|
-
index=index+1
|
100
|
-
}
|
101
|
-
array << h if !h.empty?
|
102
|
-
end
|
103
|
-
@db.close
|
104
|
-
@db=nil
|
105
|
-
|
106
|
-
return array
|
107
|
-
end
|
108
|
-
|
109
|
-
def get_branch_uri(name)
|
110
|
-
uri=""
|
111
|
-
@db = SQLite3::Database.new Dev::Database.filename
|
112
|
-
@db.execute("select Uri from Branches where Name='#{name}';") do |row|
|
113
|
-
uri=eval(row[0].to_s)[0]
|
114
|
-
end
|
115
|
-
@db.close
|
116
|
-
@db=nil
|
117
|
-
return uri
|
118
|
-
end
|
119
|
-
|
120
|
-
def find_branches(pattern)
|
121
|
-
names=Array.new
|
122
|
-
sql="select Name from Branches where Name LIKE '#{pattern}';"
|
123
|
-
sql="select Name from Branches;" if pattern.nil? || pattern.length==0
|
124
|
-
@db = SQLite3::Database.new Dev::Database.filename
|
125
|
-
@db.execute(sql) do |row|
|
126
|
-
names << row[0] if(row[0].length > 0)
|
127
|
-
end
|
128
|
-
@db.close
|
129
|
-
@db=nil
|
130
|
-
return names
|
131
|
-
end
|
132
|
-
end # class Database
|
133
|
-
end # module Dev
|
134
|
-
end
|
data/lib/dev/Dep.rb
DELETED
@@ -1,117 +0,0 @@
|
|
1
|
-
module Dev
|
2
|
-
|
3
|
-
#PROJECT = Dev::Project.new( {
|
4
|
-
# name: 'Musco.Cs.Framework',
|
5
|
-
# type: 'C#',
|
6
|
-
# dep: { nunit:{uri: 'svn://denver-svn/ThirdParty/export/NUnit/2.5.10.11092',
|
7
|
-
# dir: 'ThirdParty/NUnit/2.5.10.11092'},
|
8
|
-
# specflow:{uri: 'svn://denver-svn/ThirdParty/export/SpecFlow/1.8.1',
|
9
|
-
# dir: 'ThirdParty/SpecFlow/1.8.1'},
|
10
|
-
# interface:{uri: 'svn://denver-svn/Musco.Cs/Interface/trunk@#{INTERFACE_REV}',
|
11
|
-
# rake: 'default', cache: 'true' }
|
12
|
-
# } ,
|
13
|
-
# replace: { interface: { glob: '*.csproj',
|
14
|
-
# search: /Musco.Cs\\Interface\\trunk@[\d]+/,
|
15
|
-
# replace: "Musco.Cs\\Interface\\trunk@#{INTERFACE_REV}" } }
|
16
|
-
#} )
|
17
|
-
|
18
|
-
# uri:
|
19
|
-
# dir:
|
20
|
-
# rake:
|
21
|
-
# cache:
|
22
|
-
class Dep < Hash
|
23
|
-
|
24
|
-
# constructor that accepts a hash
|
25
|
-
def initialize(hash)
|
26
|
-
hash.each { |name,value| self[name]=value }
|
27
|
-
end
|
28
|
-
|
29
|
-
def get_rel_dir
|
30
|
-
return Dev::Environment.expand_string_variables(self[:dir]) unless self[:dir].nil?
|
31
|
-
uri=Dev::Environment.expand_string_variables(self[:uri])
|
32
|
-
uri_words=uri.split('/')
|
33
|
-
while(uri_words.length > 3) do
|
34
|
-
uri_words.shift
|
35
|
-
end
|
36
|
-
return uri_words.join('/')
|
37
|
-
end
|
38
|
-
|
39
|
-
def get_dep_dir
|
40
|
-
return Dev::Environment.dev_root + "/dep/" + get_rel_dir
|
41
|
-
end
|
42
|
-
|
43
|
-
def get_wrk_dir
|
44
|
-
return Dev::Environment.dev_root + "/wrk/" + get_rel_dir unless get_rel_dir.include?("@")
|
45
|
-
return Dev::Environment.dev_root + "/wrk/" + get_rel_dir.split("@")[0]
|
46
|
-
end
|
47
|
-
|
48
|
-
def get_export_command(local_dir)
|
49
|
-
unless self[:uri].nil?
|
50
|
-
uri=Dev::Environment.expand_string_variables(self.get_value("uri"))
|
51
|
-
if(uri.include?('github.com'))
|
52
|
-
return "<%Dev::Scm::export('#{uri}','#{local_dir}','git') unless File.exists?('#{local_dir}')%>"
|
53
|
-
end
|
54
|
-
return "<%Dev::Scm::export(\"#{uri}\",\"#{local_dir}\",'svn') unless File.exists?(\"#{local_dir}\")%>"
|
55
|
-
end # unless
|
56
|
-
end
|
57
|
-
|
58
|
-
def get_rake_command
|
59
|
-
end
|
60
|
-
|
61
|
-
def self.clean_dep(rel_dir,age_in_days)
|
62
|
-
Dir.glob("#{Dev::Environment.dev_root}/dep/#{rel_dir}/*").each { |f|
|
63
|
-
if(File.directory?(f))
|
64
|
-
elapsed = Time.now - File.mtime(f)
|
65
|
-
if(elapsed > 60*60*24*age_in_days)
|
66
|
-
puts " removing directory #{f}"
|
67
|
-
FileUtils.rm_rf(f)
|
68
|
-
end
|
69
|
-
end
|
70
|
-
}
|
71
|
-
end
|
72
|
-
|
73
|
-
def self.clobber_dep(rel_dir)
|
74
|
-
Dir.glob("#{Dev::Environment.dev_root}/dep/#{rel_dir}/*").each { |f|
|
75
|
-
if(File.directory?(f))
|
76
|
-
puts " removing directory #{f}"
|
77
|
-
FileUtils.rm_rf(f)
|
78
|
-
end
|
79
|
-
}
|
80
|
-
end
|
81
|
-
|
82
|
-
def setup_commands
|
83
|
-
array = Array.new
|
84
|
-
array << get_export_command(get_dep_dir)
|
85
|
-
array << "<%puts ' #{get_dep_dir} exists.' if File.exist?('#{get_dep_dir}')%>"
|
86
|
-
|
87
|
-
rake=true
|
88
|
-
rake=false if !self.get_value("no_rake").nil? && File.exists?(self.get_value("no_rake"))
|
89
|
-
if(rake)
|
90
|
-
unless self[:rake].nil?
|
91
|
-
array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_dep_dir}', cache:'true', capture_output: true, capture_error: true, auto: true}" unless self.get_value("cache").nil?
|
92
|
-
array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_dep_dir}', capture_output: true, capture_error: true , auto: true}" if self.get_value("cache").nil?
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
return array
|
97
|
-
end
|
98
|
-
|
99
|
-
def pull_commands
|
100
|
-
array = Array.new
|
101
|
-
if(File.exists?(get_wrk_dir))
|
102
|
-
unless self[:rake].nil?
|
103
|
-
array << "{cmd: 'rake pull', dir: '#{get_wrk_dir}'}"
|
104
|
-
#array << "{cmd: 'rake pull', dir: '#{get_wrk_dir}', capture_output: false}"
|
105
|
-
#array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_wrk_dir}'}"
|
106
|
-
rakefile="#{get_wrk_dir}/rakefile.rb"
|
107
|
-
array << "<%Dev::Svn::update_revision_variables('#{rakefile}')%>"
|
108
|
-
array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_wrk_dir}'}"
|
109
|
-
#array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_wrk_dir}', capture_output: false}"
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
return array
|
114
|
-
end
|
115
|
-
|
116
|
-
end # class Dep
|
117
|
-
end # module Dev
|