Class: PPL::Bundle

Inherits:
Object
  • Object
show all
Defined in:
lib/pod-pipeline/util/bundle.rb

Class Method Summary collapse

Class Method Details

.combine(inputs, output, include_list = [], exclude_list = []) ⇒ Object



3
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
# File 'lib/pod-pipeline/util/bundle.rb', line 3

def self.combine(inputs, output, include_list=[], exclude_list=[])
    puts "\n目标文件:#{output}\n"

    #获取合并文件的路径序列
    inputs.each do |input|
        puts "\n合并路径:#{input}"

        Dir[input].each do |input_bundle|;
            #若 input_bundle 为输出目录 则跳过
            next if input_bundle.eql? output
            #若 input_file 非被include标记的文件 则跳过
            unless include_list.empty?
                is_include = false
                include_list.each { |include|
                    input_file_basename = File.basename(input_bundle)
                    include_basename = File.basename(include)
                    if input_file_basename == "#{include_basename}.bundle"    
                        is_include = true
                        break
                    end
                }
                next unless is_include
            end
            #若 input_file 为被exclude标记的文件 则跳过
            unless exclude_list.empty?
                is_exclude = false
                exclude_list.each { |exclude|
                    input_file_basename = File.basename(input_bundle)
                    exclude_basename = File.basename(exclude)
                    if input_file_basename == "#{exclude_basename}.bundle"    
                        is_exclude = true
                        break
                    end
                }
                next if is_exclude
            end
            #合并
            puts "合并资源包:" + input_bundle
            FileUtils.cp_r(input_bundle, output, :preserve => true)
        end
    end
end