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
|
# File 'lib/pullable.rb', line 8
def self.process!(root)
pulled, skipped, failed = [], [], []
raise ArgumentError.new("Please pass a root directoy!") if root.nil?
raise ArgumentError.new("Please pass a valid root directoy!") unless File.directory?(root)
Dir.foreach(root) do |directory|
if File.directory?(directory)
unless SKIPPED_DIRECTORIES.include?(directory)
FileUtils.cd(directory)
if File.directory?('.git')
puts "Pulling:\t#{directory}"
`git fetch -p`
`git merge --ff-only origin/master`
end
unless $?.success?
failed << directory
else
pulled << directory
end
FileUtils.cd(root)
end
else
skipped << directory
end
end
puts "Pulled:\t\t#{pulled.inspect}" unless pulled.empty?
puts "Skipped:\t#{skipped.inspect}" unless skipped.empty?
puts "Failed:\t\t#{failed.inspect}" unless failed.empty?
end
|