unigunkan 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/unigunkan +3 -0
- data/lib/unigunkan/processor.rb +54 -0
- data/lib/unigunkan/version.rb +1 -1
- metadata +1 -1
data/bin/unigunkan
CHANGED
@@ -8,6 +8,7 @@ opt = OptionParser.new
|
|
8
8
|
OPTS = {}
|
9
9
|
opt.on('-y') {|v| OPTS[:y] = v }
|
10
10
|
opt.on('--disable-retina-4inch-support') {|v| OPTS[:disable_retina_4inch_support] = v}
|
11
|
+
opt.on('--folder-refs VAL') {|v| OPTS[:folder_refs] = v}
|
11
12
|
opt.parse!(ARGV)
|
12
13
|
|
13
14
|
input = ARGV[0]
|
@@ -40,5 +41,7 @@ end
|
|
40
41
|
processor = Unigunkan::Processor.new(input, OPTS)
|
41
42
|
processor.create_backup
|
42
43
|
processor.disable_retina_4inch_support if disable_retina_4inch_support
|
44
|
+
processor.add_folder_refs
|
45
|
+
|
43
46
|
processor.delete_original_project_file
|
44
47
|
processor.write
|
data/lib/unigunkan/processor.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
require 'pathname'
|
3
|
+
require 'securerandom'
|
3
4
|
|
4
5
|
class Unigunkan::Processor
|
5
6
|
def initialize(proj_file, opts)
|
@@ -49,6 +50,59 @@ class Unigunkan::Processor
|
|
49
50
|
@src = src
|
50
51
|
end
|
51
52
|
|
53
|
+
def add_folder_refs
|
54
|
+
if OPTS[:folder_refs].nil?
|
55
|
+
return
|
56
|
+
end
|
57
|
+
|
58
|
+
folders = OPTS[:folder_refs].split(",")
|
59
|
+
|
60
|
+
STDOUT.puts "Adding folder refs..."
|
61
|
+
|
62
|
+
file_refs_to_add = []
|
63
|
+
build_files_to_add = []
|
64
|
+
resource_build_phase_files_to_add = []
|
65
|
+
entry_in_tree_to_add = []
|
66
|
+
|
67
|
+
for folder in folders
|
68
|
+
file_ref = SecureRandom.hex
|
69
|
+
build_file = SecureRandom.hex
|
70
|
+
file_refs_to_add << "#{file_ref} /* #{folder} */ = {isa = PBXFileReference; lastKnownFileType = folder; path = #{folder}; sourceTree = \"<group>\"; };"
|
71
|
+
build_files_to_add << "#{build_file} /* #{folder} in Resources */ = {isa = PBXBuildFile; fileRef = #{file_ref} /* #{folder} */; };"
|
72
|
+
resource_build_phase_files_to_add << "#{build_file} /* #{folder} in Resources */,"
|
73
|
+
entry_in_tree_to_add << "#{file_ref} /* #{folder} */,"
|
74
|
+
end
|
75
|
+
puts build_files_to_add.join("\n")
|
76
|
+
puts file_refs_to_add.join("\n")
|
77
|
+
puts resource_build_phase_files_to_add.join("\n")
|
78
|
+
puts entry_in_tree_to_add.join("\n")
|
79
|
+
|
80
|
+
add_block_after "/* Begin PBXBuildFile section */", build_files_to_add.join("\n")
|
81
|
+
add_block_after "/* Begin PBXFileReference section */", file_refs_to_add.join("\n")
|
82
|
+
|
83
|
+
# Rewrite ResourcesBuildPhase section
|
84
|
+
target = /Resources \*\/ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = (.*?);\n\t\t\tfiles = \(/
|
85
|
+
mask = @src.scan(target)[0][0]
|
86
|
+
build_phases = "Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = #{mask};\n\t\t\tfiles = (\n"
|
87
|
+
@src.gsub!(target, build_phases + resource_build_phase_files_to_add.join("\n"))
|
88
|
+
|
89
|
+
# Rewrite PBXGroup section
|
90
|
+
target = /\/\* Begin PBXGroup section \*\/\n\t\t(.*?)\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = \(/
|
91
|
+
# isa = PBXGroup;
|
92
|
+
# children = \("
|
93
|
+
p @src.scan(target)
|
94
|
+
group_id = @src.scan(target)[0][0]
|
95
|
+
group = "/* Begin PBXGroup section */
|
96
|
+
\t\t#{group_id}
|
97
|
+
\t\t\tisa = PBXGroup;
|
98
|
+
\t\t\tchildren = ("
|
99
|
+
@src.gsub!(target, group + "\n" + entry_in_tree_to_add.join("\n"))
|
100
|
+
end
|
101
|
+
|
102
|
+
def add_block_after(line, block)
|
103
|
+
@src.gsub!(line, line + "\n" + block)
|
104
|
+
end
|
105
|
+
|
52
106
|
def delete_original_project_file
|
53
107
|
FileUtils.rm @proj_file
|
54
108
|
end
|
data/lib/unigunkan/version.rb
CHANGED