unigunkan 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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