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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/seed +3 -0
  3. data/lib/cocoaseeds.rb +126 -0
  4. 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
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'cocoaseeds'
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: []