cocoaseeds 0.0.2
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.
- checksums.yaml +7 -0
- data/bin/seed +3 -0
- data/lib/cocoaseeds.rb +126 -0
- metadata +60 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: a7b4c60cb453aad006ed3d8b25ce3aae677dc687
|
4
|
+
data.tar.gz: ef9200c4b424757103df6109c8c47040063835de
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7edbc117c5f8ccb66fca420b89c26782deae7bad42160fafa58d1411a1905c928f25b847bfd4a8c80ac188679f2511ab21ed7a88bcbf311ab4f153cc06bf4899
|
7
|
+
data.tar.gz: 66af2a67b432e337e8abffa695353bda34f9c0f4e8c02e7a4f88cd896220c501e8730eaeea82128558741a685967157d8a8999cabaa11bb809f6393d187f02d7
|
data/bin/seed
ADDED
data/lib/cocoaseeds.rb
ADDED
@@ -0,0 +1,126 @@
|
|
1
|
+
require 'Xcodeproj'
|
2
|
+
|
3
|
+
|
4
|
+
$source_files = {}
|
5
|
+
|
6
|
+
|
7
|
+
class String
|
8
|
+
def colorize(color_code) "\e[#{color_code}m#{self}\e[0m" end
|
9
|
+
def red; colorize(31) end
|
10
|
+
def green; colorize(32) end
|
11
|
+
def yellow; colorize(33) end
|
12
|
+
def blue; colorize(34) end
|
13
|
+
def pink; colorize(35) end
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
def github(repo, branch, options=nil)
|
18
|
+
puts "Installing #{repo} (#{branch})".green
|
19
|
+
|
20
|
+
url = 'https://github.com/' + repo
|
21
|
+
name = repo.split('/')[1]
|
22
|
+
dir = "Seeds/#{name}"
|
23
|
+
|
24
|
+
`test -d #{dir} && rm -rf #{dir}; git clone #{url} -b #{branch} #{dir} 2>&1`
|
25
|
+
|
26
|
+
if not options.nil?
|
27
|
+
files = options[:files]
|
28
|
+
if not files.nil?
|
29
|
+
if files.kind_of?(String)
|
30
|
+
files = [files]
|
31
|
+
end
|
32
|
+
|
33
|
+
files.each do |file|
|
34
|
+
absoulte_files = `ls #{dir}/#{file} 2>&1 2>/dev/null`.split(/\r?\n/)
|
35
|
+
$source_files[name] = absoulte_files
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
def read_seedfile
|
43
|
+
begin
|
44
|
+
return File.read('Seedfile')
|
45
|
+
rescue
|
46
|
+
puts 'No Seedfile.'
|
47
|
+
exit 1
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
def install
|
53
|
+
seeds = read_seedfile.split('\r\n')
|
54
|
+
seeds.each do |line|
|
55
|
+
eval line
|
56
|
+
end
|
57
|
+
generate_project
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
def generate_project
|
62
|
+
project_filename_candidates = `ls | grep .xcodeproj`.split(/\r?\n/)
|
63
|
+
if project_filename_candidates.length == 0
|
64
|
+
puts "Couldn't find .xcodeproj file.".red
|
65
|
+
exit 1
|
66
|
+
end
|
67
|
+
|
68
|
+
project_filename = project_filename_candidates[0]
|
69
|
+
project = Xcodeproj::Project.open(project_filename)
|
70
|
+
|
71
|
+
puts "Configuring #{project_filename}"
|
72
|
+
|
73
|
+
group_seeds = project['Seeds']
|
74
|
+
if not group_seeds.nil?
|
75
|
+
group_seeds.clear
|
76
|
+
else
|
77
|
+
group_seeds = project.new_group('Seeds')
|
78
|
+
end
|
79
|
+
|
80
|
+
file_references = []
|
81
|
+
|
82
|
+
$source_files.each do |seed, files|
|
83
|
+
group_seed = group_seeds.new_group(seed)
|
84
|
+
files.each do |file|
|
85
|
+
added_file = group_seed.new_file(file)
|
86
|
+
file_references.push(added_file)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
project.targets.each do |target|
|
91
|
+
if project.targets.length > 1 and target.name.end_with?('Tests')
|
92
|
+
next
|
93
|
+
end
|
94
|
+
|
95
|
+
target.build_phases.each do |phase|
|
96
|
+
if not phase.kind_of?(Xcodeproj::Project::Object::PBXSourcesBuildPhase)
|
97
|
+
next
|
98
|
+
end
|
99
|
+
|
100
|
+
phase.files_references.each do |file_reference|
|
101
|
+
begin
|
102
|
+
file_reference.real_path
|
103
|
+
rescue
|
104
|
+
phase.remove_file_reference(file_reference)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
file_references.each do |file|
|
109
|
+
if not phase.include?(file)
|
110
|
+
phase.add_file_reference(file)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
project.save
|
117
|
+
puts "Done."
|
118
|
+
end
|
119
|
+
|
120
|
+
|
121
|
+
case ARGV[0]
|
122
|
+
when 'install'
|
123
|
+
install
|
124
|
+
else
|
125
|
+
puts 'Usage: seed install'
|
126
|
+
end
|
metadata
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cocoaseeds
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Suyeol Jeon
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-05-07 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: xcodeproj
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.24.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.24.1
|
27
|
+
description: Git Submodule Alternative for Cocoa.
|
28
|
+
email: devxoul@gmail.com
|
29
|
+
executables:
|
30
|
+
- seed
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- bin/seed
|
35
|
+
- lib/cocoaseeds.rb
|
36
|
+
homepage: https://github.com/devxoul/CocoaSeeds
|
37
|
+
licenses:
|
38
|
+
- MIT
|
39
|
+
metadata: {}
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 2.0.0
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
requirements: []
|
55
|
+
rubyforge_project:
|
56
|
+
rubygems_version: 2.4.1
|
57
|
+
signing_key:
|
58
|
+
specification_version: 4
|
59
|
+
summary: Git Submodule Alternative for Cocoa.
|
60
|
+
test_files: []
|