Class: Dev::Cmd::DeepPull

Inherits:
Object
  • Object
show all
Defined in:
lib/dev/cmd/DeepPull.rb

Class Method Summary collapse

Class Method Details

.executeObject



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]}"
  # loop over each DEP with dir: NAME@REVISION format
  DEV[:dep].each {|key,value|
 if(value.has_key?(:dir) && value[:dir].include?('@'))
   
# make sure working directory exist
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
	}

	# shallow pull in this 
	puts ""
	Pull.execute

end