4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/dev/cmd/DeepPull.rb', line 4
def self.execute
puts "checking dependencies in #{DEV[:directory]}"
DEV[:dep].each {|key,value|
if(value.has_key?(:dir) && value[:dir].include?('@'))
dep_wrk_dir="#{DEV[:dev_root]}/wrk/#{value[:dir].gsub(/@[\d]+/,'')}"
dep_uri="#{value[:uri].gsub('@REV','')}"
puts "#{dep_wrk_dir}"
if(File.exists?(dep_wrk_dir))
Dir.chdir(dep_wrk_dir){|dir|
call=Dev::SystemCall.new('svn update')
call.puts_summary
}
else
call=Dev::SystemCall.new("svn co #{dep_uri} #{dep_wrk_dir}")
call.puts_summary
end
if(value.has_key?(:rake))
task=value[:rake]
Dir.chdir(dep_wrk_dir){ |dir|
original_text = File.read("#{dep_wrk_dir}/rakefile.rb")
call=Dev::SystemCall.new('rake deep_pull')
call.puts_summary
current_text = File.read("#{dep_wrk_dir}/rakefile.rb")
if(original_text != current_text)
if(task=='default')
call=Dev::SystemCall.new('rake setup')
call.puts_summary2(false)
end
call=Dev::SystemCall.new("rake #{task}")
call.puts_summary
end
}
end
end
}
puts ""
Pull.execute
end
|