fig 0.1.73 → 0.1.75

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/Changes +75 -0
  2. data/lib/fig.rb +1 -1
  3. data/lib/fig/command.rb +36 -12
  4. data/lib/fig/command/action.rb +1 -1
  5. data/lib/fig/command/action/dump_package_definition_parsed.rb +4 -6
  6. data/lib/fig/command/action/run_command_statement.rb +3 -2
  7. data/lib/fig/command/options.rb +12 -3
  8. data/lib/fig/command/options/parser.rb +2 -0
  9. data/lib/fig/command/package_loader.rb +1 -0
  10. data/lib/fig/config_file_error.rb +1 -1
  11. data/lib/fig/grammar/base.rb +214 -0
  12. data/lib/fig/grammar/base.treetop +29 -0
  13. data/lib/fig/grammar/v0.rb +1493 -0
  14. data/lib/fig/grammar/v0.treetop +167 -0
  15. data/lib/fig/grammar/v1.rb +1478 -0
  16. data/lib/fig/grammar/v1.treetop +174 -0
  17. data/lib/fig/grammar/version.rb +144 -0
  18. data/lib/fig/grammar/version.treetop +22 -0
  19. data/lib/fig/grammar/version_identification.rb +113 -0
  20. data/lib/fig/grammar/version_identification.treetop +27 -0
  21. data/lib/fig/log4r_config_error.rb +1 -1
  22. data/lib/fig/no_such_package_config_error.rb +1 -1
  23. data/lib/fig/not_found_error.rb +7 -0
  24. data/lib/fig/operating_system.rb +31 -20
  25. data/lib/fig/package.rb +8 -3
  26. data/lib/fig/package_definition_text_assembler.rb +88 -0
  27. data/lib/fig/package_descriptor_parse_error.rb +1 -1
  28. data/lib/fig/parser.rb +115 -29
  29. data/lib/fig/parser_package_build_state.rb +38 -11
  30. data/lib/fig/repository.rb +5 -8
  31. data/lib/fig/repository_package_publisher.rb +114 -96
  32. data/lib/fig/runtime_environment.rb +42 -14
  33. data/lib/fig/statement.rb +133 -0
  34. data/lib/fig/statement/archive.rb +6 -4
  35. data/lib/fig/statement/asset.rb +28 -34
  36. data/lib/fig/statement/command.rb +6 -2
  37. data/lib/fig/statement/configuration.rb +4 -12
  38. data/lib/fig/statement/grammar_version.rb +22 -0
  39. data/lib/fig/statement/include.rb +5 -6
  40. data/lib/fig/statement/override.rb +6 -3
  41. data/lib/fig/statement/path.rb +12 -2
  42. data/lib/fig/statement/resource.rb +8 -8
  43. data/lib/fig/statement/retrieve.rb +11 -3
  44. data/lib/fig/statement/set.rb +12 -2
  45. data/lib/fig/unparser.rb +127 -0
  46. data/lib/fig/unparser/v0.rb +84 -0
  47. data/lib/fig/unparser/v1.rb +77 -0
  48. data/lib/fig/url.rb +7 -0
  49. metadata +139 -25
  50. data/lib/fig/grammar.treetop +0 -147
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fig
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.73
4
+ version: 0.1.75
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-12 00:00:00.000000000 Z
12
+ date: 2012-08-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: colorize
16
- requirement: &11075420 !ruby/object:Gem::Requirement
16
+ requirement: &20106180 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.5.8
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *11075420
24
+ version_requirements: *20106180
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: highline
27
- requirement: &11074940 !ruby/object:Gem::Requirement
27
+ requirement: &20105640 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.6.2
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *11074940
35
+ version_requirements: *20105640
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: json
38
- requirement: &11074460 !ruby/object:Gem::Requirement
38
+ requirement: &20105100 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.6.5
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *11074460
46
+ version_requirements: *20105100
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: libarchive-static
49
- requirement: &11074000 !ruby/object:Gem::Requirement
49
+ requirement: &20104500 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.0.0
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *11074000
57
+ version_requirements: *20104500
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: log4r
60
- requirement: &11089880 !ruby/object:Gem::Requirement
60
+ requirement: &20103920 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.1.5
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *11089880
68
+ version_requirements: *20103920
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: net-netrc
71
- requirement: &11089400 !ruby/object:Gem::Requirement
71
+ requirement: &20103100 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 0.2.2
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *11089400
79
+ version_requirements: *20103100
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: net-sftp
82
- requirement: &11088900 !ruby/object:Gem::Requirement
82
+ requirement: &20102240 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 2.0.4
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *11088900
90
+ version_requirements: *20102240
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: net-ssh
93
- requirement: &11088420 !ruby/object:Gem::Requirement
93
+ requirement: &20101740 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 2.0.15
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *11088420
101
+ version_requirements: *20101740
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rdoc
104
- requirement: &11087940 !ruby/object:Gem::Requirement
104
+ requirement: &20016900 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '3.12'
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *11087940
112
+ version_requirements: *20016900
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: sys-admin
115
- requirement: &11087460 !ruby/object:Gem::Requirement
115
+ requirement: &20016420 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 1.5.6
121
121
  type: :runtime
122
122
  prerelease: false
123
- version_requirements: *11087460
123
+ version_requirements: *20016420
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: treetop
126
- requirement: &11086980 !ruby/object:Gem::Requirement
126
+ requirement: &20015640 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,7 +131,106 @@ dependencies:
131
131
  version: 1.4.2
132
132
  type: :runtime
133
133
  prerelease: false
134
- version_requirements: *11086980
134
+ version_requirements: *20015640
135
+ - !ruby/object:Gem::Dependency
136
+ name: open4
137
+ requirement: &20014840 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: 1.0.1
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: *20014840
146
+ - !ruby/object:Gem::Dependency
147
+ name: bundler
148
+ requirement: &20013800 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: 1.0.15
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: *20013800
157
+ - !ruby/object:Gem::Dependency
158
+ name: rake
159
+ requirement: &20013120 !ruby/object:Gem::Requirement
160
+ none: false
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: 0.8.7
165
+ type: :development
166
+ prerelease: false
167
+ version_requirements: *20013120
168
+ - !ruby/object:Gem::Dependency
169
+ name: rspec
170
+ requirement: &20012540 !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ~>
174
+ - !ruby/object:Gem::Version
175
+ version: '2'
176
+ type: :development
177
+ prerelease: false
178
+ version_requirements: *20012540
179
+ - !ruby/object:Gem::Dependency
180
+ name: rspec-core
181
+ requirement: &20012080 !ruby/object:Gem::Requirement
182
+ none: false
183
+ requirements:
184
+ - - ! '>='
185
+ - !ruby/object:Gem::Version
186
+ version: 2.7.1
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: *20012080
190
+ - !ruby/object:Gem::Dependency
191
+ name: rspec-expectations
192
+ requirement: &20011600 !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: 2.7.0
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: *20011600
201
+ - !ruby/object:Gem::Dependency
202
+ name: rspec-mocks
203
+ requirement: &20011100 !ruby/object:Gem::Requirement
204
+ none: false
205
+ requirements:
206
+ - - ! '>='
207
+ - !ruby/object:Gem::Version
208
+ version: 2.7.0
209
+ type: :development
210
+ prerelease: false
211
+ version_requirements: *20011100
212
+ - !ruby/object:Gem::Dependency
213
+ name: simplecov
214
+ requirement: &20010600 !ruby/object:Gem::Requirement
215
+ none: false
216
+ requirements:
217
+ - - ! '>='
218
+ - !ruby/object:Gem::Version
219
+ version: 0.6.2
220
+ type: :development
221
+ prerelease: false
222
+ version_requirements: *20010600
223
+ - !ruby/object:Gem::Dependency
224
+ name: simplecov-html
225
+ requirement: &20010100 !ruby/object:Gem::Requirement
226
+ none: false
227
+ requirements:
228
+ - - ! '>='
229
+ - !ruby/object:Gem::Version
230
+ version: 0.5.3
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: *20010100
135
234
  description: Fig is a utility for configuring environments and managing dependencies
136
235
  across a team of developers. Given a list of packages and a command to run, Fig
137
236
  builds environment variables named in those packages (e.g., CLASSPATH), then executes
@@ -150,8 +249,12 @@ files:
150
249
  - bin/fig.bat
151
250
  - lib/fig.rb
152
251
  - lib/fig/parser_package_build_state.rb
252
+ - lib/fig/unparser/v1.rb
253
+ - lib/fig/unparser/v0.rb
153
254
  - lib/fig/logging/colorizable.rb
154
255
  - lib/fig/update_lock.rb
256
+ - lib/fig/unparser.rb
257
+ - lib/fig/url.rb
155
258
  - lib/fig/parser.rb
156
259
  - lib/fig/url_access_error.rb
157
260
  - lib/fig/package.rb
@@ -167,8 +270,14 @@ files:
167
270
  - lib/fig/package_descriptor.rb
168
271
  - lib/fig/not_found_error.rb
169
272
  - lib/fig/application_configuration.rb
273
+ - lib/fig/grammar/base.treetop
274
+ - lib/fig/grammar/version.treetop
275
+ - lib/fig/grammar/v0.treetop
276
+ - lib/fig/grammar/version_identification.treetop
277
+ - lib/fig/grammar/v1.treetop
170
278
  - lib/fig/statement/path.rb
171
279
  - lib/fig/statement/set.rb
280
+ - lib/fig/statement/grammar_version.rb
172
281
  - lib/fig/statement/asset.rb
173
282
  - lib/fig/statement/retrieve.rb
174
283
  - lib/fig/statement/include.rb
@@ -182,7 +291,6 @@ files:
182
291
  - lib/fig/package_descriptor_parse_error.rb
183
292
  - lib/fig/config_file_error.rb
184
293
  - lib/fig/operating_system.rb
185
- - lib/fig/grammar.treetop
186
294
  - lib/fig/command/action.rb
187
295
  - lib/fig/command/options/parser.rb
188
296
  - lib/fig/command/action/help.rb
@@ -237,9 +345,15 @@ files:
237
345
  - lib/fig/environment_variables/case_sensitive.rb
238
346
  - lib/fig/environment_variables/case_insensitive.rb
239
347
  - lib/fig/command.rb
348
+ - lib/fig/package_definition_text_assembler.rb
240
349
  - lib/fig/statement.rb
241
350
  - LICENSE
242
351
  - README.md
352
+ - lib/fig/grammar/base.rb
353
+ - lib/fig/grammar/version.rb
354
+ - lib/fig/grammar/v0.rb
355
+ - lib/fig/grammar/version_identification.rb
356
+ - lib/fig/grammar/v1.rb
243
357
  homepage: http://github.com/mfoemmel/fig
244
358
  licenses: []
245
359
  post_install_message:
@@ -1,147 +0,0 @@
1
- # Treetop (http://treetop.rubyforge.org/) grammar for package definitions.
2
-
3
- # Some aspects of this grammar are significantly dumber than they could be
4
- # because:
5
- #
6
- # * We want to treat statements as identically as possible to their
7
- # command-line equivalents.
8
- # * Treetop parse errors are pretty inscrutable at times and we can make
9
- # error messages clearer by validating a lot of the terminals ourselves.
10
-
11
- module Fig
12
- grammar Fig
13
- rule package
14
- optional_ws statements:(package_statement*) optional_ws {
15
- def to_package(directory, build_state)
16
- return build_state.new_package_statement(directory, statements)
17
- end
18
- }
19
- end
20
-
21
- rule package_statement
22
- archive / resource / retrieve / config
23
- end
24
-
25
- rule archive
26
- statement_start:"archive" ws url:asset_url ws {
27
- def to_package_statement(build_state)
28
- return build_state.new_asset_statement(
29
- Statement::Archive, statement_start, url
30
- )
31
- end
32
- }
33
- end
34
-
35
- rule resource
36
- statement_start:"resource" ws url:asset_url ws {
37
- def to_package_statement(build_state)
38
- return build_state.new_asset_statement(
39
- Statement::Resource, statement_start, url
40
- )
41
- end
42
- }
43
- end
44
-
45
- rule asset_url
46
- [\S]+
47
- end
48
-
49
- rule retrieve
50
- statement_start:"retrieve" ws var:environment_variable_name "->" path:retrieve_path ws {
51
- def to_package_statement(build_state)
52
- return build_state.new_retrieve_statement(statement_start, var, path)
53
- end
54
- }
55
- end
56
-
57
- rule retrieve_path
58
- [a-zA-Z0-9_/.\[\]-]+
59
- end
60
-
61
- rule config
62
- statement_start:"config" ws config_name ws statements:config_statement* "end" ws {
63
- def to_package_statement(build_state)
64
- return build_state.new_configuration_statement(
65
- statement_start, config_name, statements
66
- )
67
- end
68
- }
69
- end
70
-
71
- rule config_name
72
- [a-zA-Z0-9_.-]+
73
- end
74
-
75
- rule config_statement
76
- override / include / command / path / set
77
- end
78
-
79
- rule include
80
- statement_start:"include" ws descriptor_string ws {
81
- def to_config_statement(build_state)
82
- return build_state.new_include_statement(
83
- statement_start, descriptor_string
84
- )
85
- end
86
- }
87
- end
88
-
89
- rule override
90
- statement_start:"override" ws descriptor_string ws {
91
- def to_config_statement(build_state)
92
- return build_state.new_override_statement(
93
- statement_start, descriptor_string
94
- )
95
- end
96
- }
97
- end
98
-
99
- rule path
100
- statement_start:("add" / "append" / "path") ws name_value:[\S]+ ws {
101
- def to_config_statement(build_state)
102
- return build_state.new_environment_variable_statement(
103
- Statement::Path, statement_start, name_value
104
- )
105
- end
106
- }
107
- end
108
-
109
- rule environment_variable_name
110
- [a-zA-Z0-9_]+
111
- end
112
-
113
- rule set
114
- statement_start:"set" ws name_value:[\S]+ ws {
115
- def to_config_statement(build_state)
116
- return build_state.new_environment_variable_statement(
117
- Statement::Set, statement_start, name_value
118
- )
119
- end
120
- }
121
- end
122
-
123
- rule command
124
- statement_start:"command" ws string {
125
- def to_config_statement(build_state)
126
- return build_state.new_command_statement(statement_start, string)
127
- end
128
- }
129
- end
130
-
131
- rule string
132
- '"' value:(!'"' . )* '"' ws
133
- end
134
-
135
- rule descriptor_string
136
- [\S]+
137
- end
138
-
139
- rule ws
140
- [ \n\r\t]+
141
- end
142
-
143
- rule optional_ws
144
- [ \n\r\t]*
145
- end
146
- end
147
- end