fig 0.1.73 → 0.1.75

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 (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