xcode-yamlizer 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/xcode-yamlizer.rb +39 -21
- data/lib/xcode-yamlizer/version.rb +1 -1
- metadata +1 -1
data/lib/xcode-yamlizer.rb
CHANGED
@@ -4,6 +4,7 @@ require 'xcode-yamlizer/dumpers'
|
|
4
4
|
require 'rugged'
|
5
5
|
require 'pathname'
|
6
6
|
|
7
|
+
require 'find'
|
7
8
|
|
8
9
|
$KCODE = 'UTF8' unless RUBY_VERSION >= '1.9'
|
9
10
|
require 'pp'
|
@@ -11,7 +12,7 @@ require 'pp'
|
|
11
12
|
|
12
13
|
YAML_FORMATS = [".yaml", ".yml"]
|
13
14
|
PLIST_FORMATS = [".pbxproj"]
|
14
|
-
XML_FORMATS = [".xib", ".storyboard", /(.*).xcdatamodeld\/(.*).xcdatamodel\/contents
|
15
|
+
XML_FORMATS = [".xib", ".storyboard", /(.*).xcdatamodeld\/(.*).xcdatamodel\/contents$/]
|
15
16
|
|
16
17
|
|
17
18
|
XCODE_FORMATS = PLIST_FORMATS + XML_FORMATS
|
@@ -67,10 +68,9 @@ def repo_add_files(files)
|
|
67
68
|
files.each do |file|
|
68
69
|
if not index.get_entry(file)
|
69
70
|
#puts "Adding: #{file}"
|
70
|
-
|
71
|
+
`git add '#{file}'`
|
71
72
|
end
|
72
73
|
end
|
73
|
-
index.write()
|
74
74
|
end
|
75
75
|
|
76
76
|
def repo_remove_files(files)
|
@@ -80,10 +80,9 @@ def repo_remove_files(files)
|
|
80
80
|
files.each do |file|
|
81
81
|
if index.get_entry(file)
|
82
82
|
#puts "Removing: #{file}"
|
83
|
-
|
83
|
+
`git rm --cached '#{file}'`
|
84
84
|
end
|
85
85
|
end
|
86
|
-
index.write()
|
87
86
|
end
|
88
87
|
|
89
88
|
def repo_gitignore_add_files(files)
|
@@ -95,7 +94,6 @@ def repo_gitignore_add_files(files)
|
|
95
94
|
already_ignored = []
|
96
95
|
end
|
97
96
|
|
98
|
-
|
99
97
|
new_ignored = files - already_ignored
|
100
98
|
|
101
99
|
if new_ignored.count > 0
|
@@ -124,28 +122,34 @@ end
|
|
124
122
|
|
125
123
|
|
126
124
|
module XcodeYamlizer
|
127
|
-
def self.convert_directory(dir, to_xcode)
|
128
|
-
puts "Conventering directory '#{dir}'..."
|
125
|
+
def self.convert_directory(dir, to_xcode, verbose=false, ignore_paths=[])
|
126
|
+
puts "Conventering directory '#{dir}'..." if verbose
|
129
127
|
files = []
|
130
128
|
formats = to_xcode ? YAML_FORMATS : XCODE_FORMATS
|
131
129
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
130
|
+
Find.find(dir) do |path|
|
131
|
+
name = File.basename(path)
|
132
|
+
if FileTest.directory?(path)
|
133
|
+
if ignore_paths.include?(name)
|
134
|
+
Find.prune
|
135
|
+
else
|
136
|
+
next
|
137
|
+
end
|
138
|
+
else
|
139
|
+
files += [path] if formats.include_filename? name
|
136
140
|
end
|
137
141
|
end
|
138
|
-
|
139
|
-
puts "Found:"
|
140
|
-
puts files
|
142
|
+
|
143
|
+
puts "Found:" if verbose
|
144
|
+
puts files if verbose
|
141
145
|
new_files = files.map do |file|
|
142
|
-
convert_file file
|
146
|
+
convert_file file, verbose
|
143
147
|
end
|
144
|
-
puts "Finished!"
|
148
|
+
puts "Finished!" if verbose
|
145
149
|
return files, new_files
|
146
150
|
end
|
147
151
|
|
148
|
-
def self.convert_file(input)
|
152
|
+
def self.convert_file(input, verbose=false)
|
149
153
|
result = nil
|
150
154
|
if YAML_FORMATS.include_filename? input
|
151
155
|
output = input.chomp(File.extname(input))
|
@@ -156,7 +160,7 @@ module XcodeYamlizer
|
|
156
160
|
result = load(input)
|
157
161
|
dump(output, result)
|
158
162
|
if result
|
159
|
-
puts "#{input} => #{output}"
|
163
|
+
puts "#{input} => #{output}" if verbose
|
160
164
|
return output
|
161
165
|
else
|
162
166
|
puts "Don't know what to do with '#{input}'"
|
@@ -173,9 +177,22 @@ module XcodeYamlizer
|
|
173
177
|
end
|
174
178
|
end
|
175
179
|
|
180
|
+
def self.find_submodules
|
181
|
+
paths = `git submodule foreach --quiet 'echo $path'`
|
182
|
+
paths.lines.map do |line|
|
183
|
+
line.chomp
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
176
187
|
def self.run_pre_commit
|
177
188
|
chroot_to_repo()
|
178
|
-
|
189
|
+
paths_to_ignore = find_submodules
|
190
|
+
|
191
|
+
|
192
|
+
files_remove, files_add = convert_directory('./', \
|
193
|
+
false, \
|
194
|
+
false, \
|
195
|
+
paths_to_ignore)
|
179
196
|
files_remove = make_filepaths_non_relative files_remove
|
180
197
|
files_add = make_filepaths_non_relative files_add
|
181
198
|
repo_add_files files_add
|
@@ -186,7 +203,8 @@ module XcodeYamlizer
|
|
186
203
|
|
187
204
|
def self.run_post_merge
|
188
205
|
chroot_to_repo()
|
189
|
-
|
206
|
+
paths_to_ignore = find_submodules
|
207
|
+
convert_directory('./', true, false, paths_to_ignore)
|
190
208
|
end
|
191
209
|
|
192
210
|
|