phoenx 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/phoenx/cli/cli_factory.rb +0 -78
- data/lib/phoenx/cli/command.rb +1 -68
- data/lib/phoenx/cli/option.rb +1 -5
- data/lib/phoenx/entities/configuration.rb +0 -3
- data/lib/phoenx/entities/dependency.rb +0 -3
- data/lib/phoenx/entities/project.rb +0 -11
- data/lib/phoenx/entities/scheme.rb +0 -5
- data/lib/phoenx/entities/target.rb +0 -19
- data/lib/phoenx/entities/workspace.rb +6 -9
- data/lib/phoenx/gem_version.rb +1 -1
- data/lib/phoenx/use_cases/extract_build_settings.rb +0 -20
- data/lib/phoenx/use_cases/generate_project.rb +0 -44
- data/lib/phoenx/use_cases/generate_target.rb +0 -210
- data/lib/phoenx/use_cases/generate_workspace.rb +1 -29
- data/lib/phoenx/use_cases/target/add_header.rb +0 -32
- data/lib/phoenx/utilities/files_utils.rb +0 -11
- data/lib/phoenx/utilities/xcodeproj_utils.rb +0 -43
- data/lib/phoenx/validators/project_validator.rb +2 -8
- data/lib/phoenx/validators/workspace_validator.rb +1 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: feded64f42c998c69a907d3072b3bc79d663afe3
|
4
|
+
data.tar.gz: ad664cdeaa3e933fe747d8d46b8e1fdfdbce2060
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 934d06c3ed6c0a0ed1a8d5a8b52c9d6771aaa7fecbe76085fefc3f4e860cfc7f47a46bcd7446aea7304a43782d72fa9b5d94fbf8897b334c16dd600d145904f1
|
7
|
+
data.tar.gz: 01dde15c9767dd129bfad8b5645520d4bd8a5958b7975fa851220cc7da50bf3d4b7a5d2256ce14c7343a2fdaaca2ae84845248bada2b9fd342f7e7bb7f582da1
|
@@ -7,193 +7,115 @@ module Phoenx
|
|
7
7
|
class Factory
|
8
8
|
|
9
9
|
def workspace_command
|
10
|
-
|
11
10
|
command = Phoenx::Cli::Command.new "workspace", "Builds the workspace and projects" do
|
12
|
-
|
13
11
|
command.print
|
14
12
|
exit
|
15
|
-
|
16
13
|
end
|
17
|
-
|
18
14
|
command.base_command = "phoenx workspace"
|
19
15
|
command.usage = "Initializes the workspace by generating the xcodeproj and xcworkspace files."
|
20
|
-
|
21
16
|
# Add workspace build command
|
22
|
-
|
23
17
|
build_command = Phoenx::Cli::Command.new "build", "Builds the workspace and projects" do
|
24
|
-
|
25
18
|
workspaces = Dir["*." + Phoenx::WORKSPACE_EXTENSION]
|
26
|
-
|
27
19
|
if workspaces.count < 1
|
28
|
-
|
29
20
|
puts "Error: No workspace spec found!".red
|
30
21
|
exit
|
31
|
-
|
32
22
|
end
|
33
|
-
|
34
23
|
workspace = eval File.read(workspaces.first)
|
35
|
-
|
36
24
|
if !workspace
|
37
|
-
|
38
25
|
puts "Error: No workspace spec found!".red
|
39
26
|
exit
|
40
|
-
|
41
27
|
end
|
42
|
-
|
43
28
|
puts "\r\nWorkspace ".green + workspace.name.bold
|
44
|
-
|
45
29
|
generator = Phoenx::GenerateWorkspace.new workspace
|
46
30
|
generator.generate
|
47
|
-
|
48
31
|
exit
|
49
|
-
|
50
32
|
end
|
51
|
-
|
52
|
-
|
53
33
|
build_command.base_command = "phoenx workspace"
|
54
34
|
build_command.usage = "Initializes the workspace by generating the xcodeproj and xcworkspace files."
|
55
|
-
|
56
35
|
build_help_option = Phoenx::Cli::Option.new("--help", "-h","Shows this help",false) do
|
57
36
|
build_command.print
|
58
37
|
exit
|
59
38
|
end
|
60
|
-
|
61
39
|
build_command.add_option build_help_option
|
62
|
-
|
63
40
|
command.add_command build_command
|
64
|
-
|
65
41
|
return command
|
66
|
-
|
67
42
|
end
|
68
43
|
|
69
44
|
def project_command
|
70
|
-
|
71
45
|
command = Phoenx::Cli::Command.new "project", "Builds the project" do
|
72
|
-
|
73
46
|
command.print
|
74
47
|
exit
|
75
|
-
|
76
48
|
end
|
77
|
-
|
78
49
|
command.base_command = "phoenx project"
|
79
50
|
command.usage = "Generates the xcodeproj file from the pxproject specification."
|
80
|
-
|
81
51
|
# Add project build command
|
82
|
-
|
83
52
|
build_command = Phoenx::Cli::Command.new "build", "Builds the project" do
|
84
|
-
|
85
53
|
projects = Dir["*." + Phoenx::PROJECT_EXTENSION]
|
86
|
-
|
87
54
|
if projects.count < 1
|
88
|
-
|
89
55
|
puts "Error: No project spec found!".red
|
90
56
|
exit
|
91
|
-
|
92
57
|
end
|
93
|
-
|
94
58
|
project = eval File.read(projects.first)
|
95
|
-
|
96
59
|
if !project
|
97
|
-
|
98
60
|
puts "Error: No project spec found!".red
|
99
61
|
exit
|
100
|
-
|
101
62
|
end
|
102
|
-
|
103
63
|
puts "\r\nGenerating project ".green + project.project_name.bold + ".xcodeproj".bold
|
104
|
-
|
105
64
|
generator = Phoenx::GenerateProject.new project
|
106
65
|
generator.build
|
107
|
-
|
108
66
|
exit
|
109
|
-
|
110
67
|
end
|
111
|
-
|
112
|
-
|
113
68
|
build_command.base_command = "phoenx project"
|
114
69
|
build_command.usage = "Generates the xcodeproj file."
|
115
|
-
|
116
70
|
build_help_option = Phoenx::Cli::Option.new("--help", "-h","Shows this help",false) do
|
117
71
|
build_command.print
|
118
72
|
exit
|
119
73
|
end
|
120
|
-
|
121
74
|
build_command.add_option build_help_option
|
122
|
-
|
123
75
|
command.add_command build_command
|
124
|
-
|
125
76
|
# Add project extract command
|
126
|
-
|
127
77
|
extract_command = Phoenx::Cli::Command.new "extract", "Extracts all build settings." do
|
128
|
-
|
129
78
|
projects = Dir["*.xcodeproj"]
|
130
|
-
|
131
79
|
if projects.length < 1
|
132
|
-
|
133
80
|
puts "No Xcode project found.".red
|
134
81
|
exit
|
135
|
-
|
136
82
|
end
|
137
|
-
|
138
83
|
project = Xcodeproj::Project::open(projects[0])
|
139
|
-
|
140
84
|
extractor = Phoenx::ExtractBuildSettings.new project
|
141
85
|
extractor.extract
|
142
|
-
|
143
86
|
exit
|
144
|
-
|
145
87
|
end
|
146
|
-
|
147
|
-
|
148
88
|
extract_command.base_command = "phoenx project"
|
149
89
|
extract_command.usage = "Extracts all project and scheme build settings to separate xcconfig files"
|
150
|
-
|
151
90
|
extract_help_option = Phoenx::Cli::Option.new("--help", "-h","Shows this help",false) do
|
152
91
|
extract_command.print
|
153
92
|
exit
|
154
93
|
end
|
155
|
-
|
156
94
|
extract_command.add_option extract_help_option
|
157
|
-
|
158
95
|
command.add_command extract_command
|
159
|
-
|
160
96
|
return command
|
161
|
-
|
162
97
|
end
|
163
98
|
|
164
99
|
def cli
|
165
|
-
|
166
100
|
# Build cli
|
167
|
-
|
168
101
|
cli = Phoenx::Cli::Command.new "root", "" do |c|
|
169
|
-
|
170
102
|
c.print
|
171
|
-
|
172
103
|
end
|
173
|
-
|
174
104
|
cli.base_command = "phoenx"
|
175
|
-
|
176
105
|
# Add version and help options
|
177
|
-
|
178
106
|
version_option = Phoenx::Cli::Option.new("--version","-v","Shows version information",false) do
|
179
107
|
puts "phoenx version " + Phoenx::VERSION.bold
|
180
|
-
|
181
108
|
exit
|
182
109
|
end
|
183
|
-
|
184
110
|
help_option = Phoenx::Cli::Option.new("--help","-h","Shows this help",false) do
|
185
111
|
cli.print
|
186
112
|
exit
|
187
113
|
end
|
188
|
-
|
189
114
|
cli.add_option version_option
|
190
115
|
cli.add_option help_option
|
191
|
-
|
192
116
|
cli.add_command self.workspace_command
|
193
117
|
cli.add_command self.project_command
|
194
|
-
|
195
118
|
return cli
|
196
|
-
|
197
119
|
end
|
198
120
|
|
199
121
|
end
|
data/lib/phoenx/cli/command.rb
CHANGED
@@ -16,166 +16,99 @@ module Phoenx
|
|
16
16
|
@@indent = 20
|
17
17
|
|
18
18
|
def initialize(name, description, &block)
|
19
|
-
|
20
19
|
@name = name
|
21
20
|
@description = description
|
22
21
|
@block = block
|
23
|
-
|
24
22
|
@options = []
|
25
23
|
@commands = []
|
26
|
-
|
27
24
|
end
|
28
25
|
|
29
26
|
def add_option(option)
|
30
|
-
|
31
27
|
@options << option
|
32
|
-
|
33
28
|
end
|
34
29
|
|
35
30
|
def add_command(command)
|
36
|
-
|
37
31
|
@commands << command
|
38
|
-
|
39
32
|
end
|
40
33
|
|
41
34
|
def parse(args)
|
42
|
-
|
43
35
|
args_tmp = args.dup
|
44
|
-
|
45
36
|
if args_tmp.empty?
|
46
|
-
|
47
37
|
@block.call self
|
48
|
-
|
49
38
|
else
|
50
|
-
|
51
39
|
args_tmp.each do |arg|
|
52
|
-
|
53
40
|
@commands.each do |command|
|
54
|
-
|
55
41
|
if arg == command.name
|
56
|
-
|
57
42
|
args_tmp.delete(arg)
|
58
|
-
|
59
43
|
command.parse(args_tmp)
|
60
|
-
|
61
44
|
end
|
62
|
-
|
63
45
|
end
|
64
|
-
|
65
46
|
@options.each do |option|
|
66
|
-
|
67
47
|
if arg == option.name || arg == option.short_cut
|
68
|
-
|
69
|
-
args_tmp.delete(arg)
|
70
|
-
|
48
|
+
args_tmp.delete(arg)
|
71
49
|
option.execute
|
72
|
-
|
73
50
|
end
|
74
|
-
|
75
51
|
end
|
76
|
-
|
77
52
|
end
|
78
|
-
|
79
53
|
end
|
80
|
-
|
81
54
|
unless args_tmp.empty?
|
82
|
-
|
83
55
|
error = "Unknown arguments: "
|
84
|
-
|
85
56
|
args_tmp.each do |arg|
|
86
|
-
|
87
57
|
error += arg + " "
|
88
|
-
|
89
58
|
end
|
90
|
-
|
91
59
|
puts error
|
92
|
-
|
93
60
|
print
|
94
|
-
|
95
61
|
exit
|
96
|
-
|
97
62
|
end
|
98
|
-
|
99
63
|
end
|
100
64
|
|
101
65
|
def print
|
102
|
-
|
103
66
|
puts
|
104
67
|
puts "Usage".underline
|
105
68
|
puts
|
106
69
|
cmd = " $ ".bold + base_command
|
107
|
-
|
108
70
|
unless @commands.empty?
|
109
|
-
|
110
71
|
cmd += " " + "[command]".green.bold
|
111
|
-
|
112
72
|
end
|
113
|
-
|
114
73
|
unless @options.empty?
|
115
|
-
|
116
74
|
cmd += " [options]".blue.bold
|
117
|
-
|
118
75
|
end
|
119
|
-
|
120
76
|
puts cmd
|
121
|
-
|
122
77
|
unless @usage.nil?
|
123
|
-
|
124
78
|
puts
|
125
79
|
puts " " + @usage
|
126
|
-
|
127
80
|
end
|
128
|
-
|
129
|
-
|
130
81
|
if !@commands.empty?
|
131
|
-
|
132
82
|
puts
|
133
83
|
puts "Commands".underline
|
134
84
|
puts
|
135
|
-
|
136
85
|
@commands.each do |command|
|
137
|
-
|
138
86
|
puts " ".green + command.name.green.bold + whitespace(command.name) + command.description
|
139
|
-
|
140
87
|
end
|
141
|
-
|
142
88
|
end
|
143
|
-
|
144
89
|
if !@options.empty?
|
145
|
-
|
146
90
|
puts
|
147
91
|
puts "Options".underline
|
148
92
|
puts
|
149
|
-
|
150
93
|
@options.each do |option|
|
151
|
-
|
152
94
|
output = option.name + ", " + option.short_cut
|
153
95
|
puts " " + output.bold.blue + whitespace(output) + option.description
|
154
|
-
|
155
96
|
end
|
156
97
|
end
|
157
|
-
|
158
98
|
puts
|
159
|
-
|
160
99
|
end
|
161
100
|
|
162
101
|
private
|
163
102
|
|
164
103
|
def whitespace(message)
|
165
|
-
|
166
104
|
count = @@indent - message.length
|
167
105
|
i = 0
|
168
106
|
result = ""
|
169
|
-
|
170
107
|
until count == i do
|
171
|
-
|
172
108
|
result << " "
|
173
109
|
i += 1
|
174
|
-
|
175
110
|
end
|
176
|
-
|
177
111
|
return result
|
178
|
-
|
179
112
|
end
|
180
113
|
|
181
114
|
end
|
data/lib/phoenx/cli/option.rb
CHANGED
@@ -12,19 +12,15 @@ module Phoenx
|
|
12
12
|
@block
|
13
13
|
|
14
14
|
def initialize(name, short_cut, description, has_argument, &block)
|
15
|
-
|
16
15
|
@name = name
|
17
16
|
@short_cut = short_cut
|
18
17
|
@description = description
|
19
18
|
@has_argument = has_argument
|
20
|
-
@block = block
|
21
|
-
|
19
|
+
@block = block
|
22
20
|
end
|
23
21
|
|
24
22
|
def execute
|
25
|
-
|
26
23
|
@block.call
|
27
|
-
|
28
24
|
end
|
29
25
|
|
30
26
|
end
|
@@ -1,17 +1,14 @@
|
|
1
1
|
module Phoenx
|
2
2
|
|
3
3
|
class Dependency
|
4
|
-
|
5
4
|
attr_accessor :target_name
|
6
5
|
attr_accessor :path
|
7
6
|
attr_accessor :embed
|
8
7
|
|
9
8
|
def initialize(target_name, embed = true, path = nil)
|
10
|
-
|
11
9
|
@target_name = target_name
|
12
10
|
@path = path
|
13
11
|
@embed = embed
|
14
|
-
|
15
12
|
end
|
16
13
|
|
17
14
|
end
|
@@ -1,10 +1,8 @@
|
|
1
1
|
module Phoenx
|
2
2
|
|
3
3
|
class Project
|
4
|
-
|
5
4
|
attr_reader :configurations
|
6
5
|
attr_reader :config_files
|
7
|
-
|
8
6
|
attr_accessor :pre_install_scripts
|
9
7
|
attr_accessor :post_install_scripts
|
10
8
|
attr_accessor :project_name
|
@@ -14,7 +12,6 @@ module Phoenx
|
|
14
12
|
attr_accessor :deterministic_project
|
15
13
|
|
16
14
|
def initialize
|
17
|
-
|
18
15
|
@configurations = []
|
19
16
|
@config_files = {}
|
20
17
|
@targets = []
|
@@ -23,27 +20,19 @@ module Phoenx
|
|
23
20
|
@support_files = []
|
24
21
|
@excluded_support_files = []
|
25
22
|
@deterministic_project = false
|
26
|
-
|
27
23
|
yield self
|
28
|
-
|
29
24
|
end
|
30
25
|
|
31
26
|
def configuration(name, parent)
|
32
|
-
|
33
27
|
@configurations << Configuration.new(name, parent)
|
34
|
-
|
35
28
|
end
|
36
29
|
|
37
30
|
def target(name, type, platform, version, &block)
|
38
|
-
|
39
31
|
targets << Phoenx::TestableTarget.new(name, type, platform, version, &block)
|
40
|
-
|
41
32
|
end
|
42
33
|
|
43
34
|
def project_file_name
|
44
|
-
|
45
35
|
return @project_name + "." + XCODE_PROJECT_EXTENSION
|
46
|
-
|
47
36
|
end
|
48
37
|
|
49
38
|
end
|