fig18 0.1.39 → 0.1.40
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.
- data/Changes +41 -0
- data/LICENSE +2 -2
- data/README.md +154 -100
- data/VERSION +1 -0
- data/bin/fig +4 -182
- data/lib/fig/applicationconfiguration.rb +52 -0
- data/lib/fig/backtrace.rb +6 -6
- data/lib/fig/configfileerror.rb +15 -0
- data/lib/fig/environment.rb +46 -26
- data/lib/fig/figrc.rb +105 -0
- data/lib/fig/grammar.treetop +1 -1
- data/lib/fig/log4rconfigerror.rb +14 -0
- data/lib/fig/logging.rb +131 -0
- data/lib/fig/networkerror.rb +7 -0
- data/lib/fig/notfounderror.rb +4 -0
- data/lib/fig/options.rb +191 -54
- data/lib/fig/os.rb +73 -74
- data/lib/fig/package.rb +30 -30
- data/lib/fig/packageerror.rb +7 -0
- data/lib/fig/parser.rb +5 -8
- data/lib/fig/repository.rb +44 -28
- data/lib/fig/repositoryerror.rb +7 -0
- data/lib/fig/retriever.rb +26 -17
- data/lib/fig/urlaccesserror.rb +9 -0
- data/lib/fig/userinputerror.rb +4 -0
- data/lib/fig/windows.rb +3 -3
- data/lib/fig.rb +222 -0
- metadata +221 -47
data/lib/fig.rb
CHANGED
@@ -0,0 +1,222 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'net/ftp'
|
3
|
+
require 'log4r'
|
4
|
+
|
5
|
+
require 'fig/environment'
|
6
|
+
require 'fig/figrc'
|
7
|
+
require 'fig/logging'
|
8
|
+
require 'fig/options'
|
9
|
+
require 'fig/os'
|
10
|
+
require 'fig/parser'
|
11
|
+
require 'fig/repository'
|
12
|
+
require 'fig/retriever'
|
13
|
+
require 'fig/userinputerror'
|
14
|
+
require 'fig/windows'
|
15
|
+
|
16
|
+
module Fig
|
17
|
+
DEFAULT_FIG_FILE = 'package.fig'
|
18
|
+
|
19
|
+
def parse_descriptor(descriptor)
|
20
|
+
# todo should use treetop for these:
|
21
|
+
package_name = descriptor =~ /^([^:\/]+)/ ? $1 : nil
|
22
|
+
config_name = descriptor =~ /:([^:\/]+)/ ? $1 : nil
|
23
|
+
version_name = descriptor =~ /\/([^:\/]+)/ ? $1 : nil
|
24
|
+
return package_name, config_name, version_name
|
25
|
+
end
|
26
|
+
|
27
|
+
def run_fig(argv)
|
28
|
+
shell_command = nil
|
29
|
+
argv.each_with_index do |arg, i|
|
30
|
+
if arg == '--'
|
31
|
+
shell_command = argv[(i+1)..-1]
|
32
|
+
argv.slice!(i..-1)
|
33
|
+
break
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
options, argv, exit_value = parse_options(argv)
|
38
|
+
if not exit_value.nil?
|
39
|
+
return exit_value
|
40
|
+
end
|
41
|
+
|
42
|
+
Logging.initialize_pre_configuration(options[:log_level])
|
43
|
+
|
44
|
+
vars = {}
|
45
|
+
ENV.each {|key,value| vars[key]=value }
|
46
|
+
|
47
|
+
remote_url = nil
|
48
|
+
if options[:update] || options[:publish] || options[:update_if_missing] || options[:list_remote]
|
49
|
+
remote_url = ENV['FIG_REMOTE_URL']
|
50
|
+
if remote_url.nil?
|
51
|
+
$stderr.puts 'Please define the FIG_REMOTE_URL environment variable.'
|
52
|
+
return 1
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
configuration = FigRC.find(
|
57
|
+
options[:figrc],
|
58
|
+
remote_url,
|
59
|
+
options[:login],
|
60
|
+
options[:home],
|
61
|
+
options[:no_figrc]
|
62
|
+
)
|
63
|
+
|
64
|
+
Logging.initialize_post_configuration(options[:log_config] || configuration['log configuration'], options[:log_level])
|
65
|
+
|
66
|
+
remote_user = nil
|
67
|
+
|
68
|
+
os = OS.new(options[:login])
|
69
|
+
repos = Repository.new(
|
70
|
+
os,
|
71
|
+
File.expand_path(File.join(options[:home], 'repos')),
|
72
|
+
remote_url,
|
73
|
+
configuration,
|
74
|
+
remote_user,
|
75
|
+
options[:update],
|
76
|
+
options[:update_if_missing]
|
77
|
+
)
|
78
|
+
retriever = Retriever.new('.')
|
79
|
+
# Check to see if this is still happening with the new layers of abstraction.
|
80
|
+
at_exit { retriever.save }
|
81
|
+
env = Environment.new(os, repos, vars, retriever)
|
82
|
+
|
83
|
+
options[:modifiers].each do |modifier|
|
84
|
+
env.apply_config_statement(nil, modifier, nil)
|
85
|
+
end
|
86
|
+
|
87
|
+
input = nil
|
88
|
+
if options[:input] == :none
|
89
|
+
# ignore
|
90
|
+
elsif options[:input] == '-'
|
91
|
+
input = $stdin.read
|
92
|
+
elsif options[:input].nil?
|
93
|
+
input = os.read(DEFAULT_FIG_FILE) if os.exist?(DEFAULT_FIG_FILE)
|
94
|
+
else
|
95
|
+
if os.exist?(options[:input])
|
96
|
+
input = os.read(options[:input])
|
97
|
+
else
|
98
|
+
$stderr.puts %Q<File not found: "#{options[:input]}".>
|
99
|
+
return 1
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
options[:cleans].each do |descriptor|
|
104
|
+
package_name, version_name = descriptor.split('/')
|
105
|
+
repos.clean(package_name, version_name)
|
106
|
+
end
|
107
|
+
if options[:list]
|
108
|
+
repos.list_packages.sort.each do |item|
|
109
|
+
puts item
|
110
|
+
end
|
111
|
+
return 0
|
112
|
+
end
|
113
|
+
|
114
|
+
if options[:list_remote]
|
115
|
+
repos.list_remote_packages.sort.each do |item|
|
116
|
+
puts item
|
117
|
+
end
|
118
|
+
return 0
|
119
|
+
end
|
120
|
+
|
121
|
+
if not options[:list_configs].empty?
|
122
|
+
options[:list_configs].each do |descriptor|
|
123
|
+
package_name, version_name = descriptor.split('/')
|
124
|
+
repos.read_local_package(package_name, version_name).configs.each do |config|
|
125
|
+
puts config.name
|
126
|
+
end
|
127
|
+
end
|
128
|
+
return 0
|
129
|
+
end
|
130
|
+
|
131
|
+
if input
|
132
|
+
package = Parser.new.parse_package(nil, nil, '.', input)
|
133
|
+
direct_retrieves=[]
|
134
|
+
if options[:retrieve]
|
135
|
+
package.retrieves.each do |var, path|
|
136
|
+
if var =~ /^@([^\/]+)(.*)/
|
137
|
+
direct_retrieves << [$1, $2, path]
|
138
|
+
else
|
139
|
+
env.add_retrieve(var, path)
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
unless options[:publish] || options[:list] || options[:publish_local]
|
144
|
+
env.register_package(package)
|
145
|
+
env.apply_config(package, options[:config], nil)
|
146
|
+
direct_retrieves.each do |info|
|
147
|
+
env.direct_retrieve(info[0], info[1], info[2])
|
148
|
+
end
|
149
|
+
end
|
150
|
+
else
|
151
|
+
package = Package.new(nil, nil, '.', [])
|
152
|
+
end
|
153
|
+
|
154
|
+
if options[:publish] || options[:publish_local]
|
155
|
+
if !argv.empty?
|
156
|
+
$stderr.puts %Q<Unexpected arguments: #{argv.join(' ')}>
|
157
|
+
return 10
|
158
|
+
end
|
159
|
+
package_name, config_name, version_name = parse_descriptor(options[:publish] || options[:publish_local])
|
160
|
+
if package_name.nil? || version_name.nil?
|
161
|
+
$stderr.puts 'Please specify a package name and a version name.'
|
162
|
+
return 10
|
163
|
+
end
|
164
|
+
if not options[:modifiers].empty?
|
165
|
+
publish_statements = options[:resources] + options[:archives] + [Configuration.new('default', options[:modifiers])]
|
166
|
+
publish_statements << Publish.new('default','default')
|
167
|
+
elsif not package.statements.empty?
|
168
|
+
publish_statements = package.statements
|
169
|
+
else
|
170
|
+
$stderr.puts 'Nothing to publish.'
|
171
|
+
return 1
|
172
|
+
end
|
173
|
+
if options[:publish]
|
174
|
+
Logging.info "Checking status of #{package_name}/#{version_name}..."
|
175
|
+
if repos.list_remote_packages.include?("#{package_name}/#{version_name}")
|
176
|
+
Logging.info "#{package_name}/#{version_name} has already been published."
|
177
|
+
if not options[:force]
|
178
|
+
Logging.fatal 'Use the --force option if you really want to overwrite, or use --publish-local for testing.'
|
179
|
+
return 1
|
180
|
+
else
|
181
|
+
Logging.info 'Overwriting...'
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
185
|
+
Logging.info "Publishing #{package_name}/#{version_name}."
|
186
|
+
repos.publish_package(publish_statements, package_name, version_name, options[:publish_local])
|
187
|
+
elsif options[:echo]
|
188
|
+
puts env[options[:echo]]
|
189
|
+
elsif shell_command
|
190
|
+
argv.shift
|
191
|
+
env.execute_shell(shell_command) { |cmd| os.shell_exec cmd }
|
192
|
+
elsif argv[0]
|
193
|
+
package_name, config_name, version_name = parse_descriptor(argv.shift)
|
194
|
+
env.include_config(package, package_name, config_name, version_name, {}, nil)
|
195
|
+
env.execute_config(package, package_name, config_name, nil, argv) { |cmd| os.shell_exec cmd }
|
196
|
+
elsif input
|
197
|
+
env.execute_config(package, nil, options[:config], nil, argv) { |cmd| os.shell_exec cmd }
|
198
|
+
elsif !repos.updating?
|
199
|
+
$stderr.puts USAGE
|
200
|
+
$stderr.puts %q<Run "fig --help" for a full list of commands.>
|
201
|
+
end
|
202
|
+
|
203
|
+
return 0
|
204
|
+
end
|
205
|
+
|
206
|
+
def run_with_exception_handling(argv)
|
207
|
+
begin
|
208
|
+
return_code = run_fig(argv)
|
209
|
+
return return_code
|
210
|
+
rescue URLAccessError => exception
|
211
|
+
$stderr.puts "Access to #{exception.url} not allowed."
|
212
|
+
return 1
|
213
|
+
rescue UserInputError => exception
|
214
|
+
# If there's no message, we assume that the cause has already been logged.
|
215
|
+
if not exception.message.nil?
|
216
|
+
$stderr.puts exception.to_s
|
217
|
+
end
|
218
|
+
|
219
|
+
return 1
|
220
|
+
end
|
221
|
+
end
|
222
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fig18
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
4
|
+
hash: 75
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 40
|
10
|
+
version: 0.1.40
|
6
11
|
platform: ruby
|
7
12
|
authors:
|
8
13
|
- Matthew Foemmel
|
@@ -10,7 +15,7 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2011-10
|
18
|
+
date: 2011-11-10 00:00:00 -06:00
|
14
19
|
default_executable:
|
15
20
|
dependencies:
|
16
21
|
- !ruby/object:Gem::Dependency
|
@@ -19,31 +24,46 @@ dependencies:
|
|
19
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
20
25
|
none: false
|
21
26
|
requirements:
|
22
|
-
- - "
|
27
|
+
- - ">="
|
23
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 23
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 0
|
33
|
+
- 0
|
24
34
|
version: 1.0.0
|
25
35
|
type: :runtime
|
26
36
|
version_requirements: *id001
|
27
37
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
38
|
+
name: highline
|
29
39
|
prerelease: false
|
30
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
31
41
|
none: false
|
32
42
|
requirements:
|
33
43
|
- - ">="
|
34
44
|
- !ruby/object:Gem::Version
|
35
|
-
|
45
|
+
hash: 11
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 6
|
49
|
+
- 2
|
50
|
+
version: 1.6.2
|
36
51
|
type: :runtime
|
37
52
|
version_requirements: *id002
|
38
53
|
- !ruby/object:Gem::Dependency
|
39
|
-
name:
|
54
|
+
name: log4r
|
40
55
|
prerelease: false
|
41
56
|
requirement: &id003 !ruby/object:Gem::Requirement
|
42
57
|
none: false
|
43
58
|
requirements:
|
44
59
|
- - ">="
|
45
60
|
- !ruby/object:Gem::Version
|
46
|
-
|
61
|
+
hash: 25
|
62
|
+
segments:
|
63
|
+
- 1
|
64
|
+
- 1
|
65
|
+
- 5
|
66
|
+
version: 1.1.5
|
47
67
|
type: :runtime
|
48
68
|
version_requirements: *id003
|
49
69
|
- !ruby/object:Gem::Dependency
|
@@ -54,163 +74,298 @@ dependencies:
|
|
54
74
|
requirements:
|
55
75
|
- - ">="
|
56
76
|
- !ruby/object:Gem::Version
|
77
|
+
hash: 19
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
- 2
|
81
|
+
- 2
|
57
82
|
version: 0.2.2
|
58
83
|
type: :runtime
|
59
84
|
version_requirements: *id004
|
60
85
|
- !ruby/object:Gem::Dependency
|
61
|
-
name:
|
86
|
+
name: net-sftp
|
62
87
|
prerelease: false
|
63
88
|
requirement: &id005 !ruby/object:Gem::Requirement
|
64
89
|
none: false
|
65
90
|
requirements:
|
66
91
|
- - ">="
|
67
92
|
- !ruby/object:Gem::Version
|
68
|
-
|
93
|
+
hash: 7
|
94
|
+
segments:
|
95
|
+
- 2
|
96
|
+
- 0
|
97
|
+
- 4
|
98
|
+
version: 2.0.4
|
69
99
|
type: :runtime
|
70
100
|
version_requirements: *id005
|
71
101
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
102
|
+
name: net-ssh
|
73
103
|
prerelease: false
|
74
104
|
requirement: &id006 !ruby/object:Gem::Requirement
|
75
105
|
none: false
|
76
106
|
requirements:
|
77
107
|
- - ">="
|
78
108
|
- !ruby/object:Gem::Version
|
79
|
-
|
109
|
+
hash: 17
|
110
|
+
segments:
|
111
|
+
- 2
|
112
|
+
- 0
|
113
|
+
- 15
|
114
|
+
version: 2.0.15
|
80
115
|
type: :runtime
|
81
116
|
version_requirements: *id006
|
82
117
|
- !ruby/object:Gem::Dependency
|
83
|
-
name:
|
118
|
+
name: polyglot
|
84
119
|
prerelease: false
|
85
120
|
requirement: &id007 !ruby/object:Gem::Requirement
|
86
121
|
none: false
|
87
122
|
requirements:
|
88
123
|
- - ">="
|
89
124
|
- !ruby/object:Gem::Version
|
90
|
-
|
125
|
+
hash: 5
|
126
|
+
segments:
|
127
|
+
- 0
|
128
|
+
- 2
|
129
|
+
- 9
|
130
|
+
version: 0.2.9
|
91
131
|
type: :runtime
|
92
132
|
version_requirements: *id007
|
93
133
|
- !ruby/object:Gem::Dependency
|
94
|
-
name:
|
134
|
+
name: rdoc
|
95
135
|
prerelease: false
|
96
136
|
requirement: &id008 !ruby/object:Gem::Requirement
|
97
137
|
none: false
|
98
138
|
requirements:
|
99
|
-
- -
|
139
|
+
- - ">="
|
100
140
|
- !ruby/object:Gem::Version
|
101
|
-
|
102
|
-
|
141
|
+
hash: 27
|
142
|
+
segments:
|
143
|
+
- 2
|
144
|
+
- 4
|
145
|
+
- 2
|
146
|
+
version: 2.4.2
|
147
|
+
type: :runtime
|
103
148
|
version_requirements: *id008
|
104
149
|
- !ruby/object:Gem::Dependency
|
105
|
-
name:
|
150
|
+
name: treetop
|
106
151
|
prerelease: false
|
107
152
|
requirement: &id009 !ruby/object:Gem::Requirement
|
108
153
|
none: false
|
109
154
|
requirements:
|
110
155
|
- - ">="
|
111
156
|
- !ruby/object:Gem::Version
|
112
|
-
|
113
|
-
|
157
|
+
hash: 3
|
158
|
+
segments:
|
159
|
+
- 1
|
160
|
+
- 4
|
161
|
+
- 2
|
162
|
+
version: 1.4.2
|
163
|
+
type: :runtime
|
114
164
|
version_requirements: *id009
|
115
165
|
- !ruby/object:Gem::Dependency
|
116
|
-
name:
|
166
|
+
name: open4
|
117
167
|
prerelease: false
|
118
168
|
requirement: &id010 !ruby/object:Gem::Requirement
|
119
169
|
none: false
|
120
170
|
requirements:
|
121
|
-
- - "
|
171
|
+
- - ">="
|
122
172
|
- !ruby/object:Gem::Version
|
123
|
-
|
124
|
-
|
173
|
+
hash: 21
|
174
|
+
segments:
|
175
|
+
- 1
|
176
|
+
- 0
|
177
|
+
- 1
|
178
|
+
version: 1.0.1
|
179
|
+
type: :development
|
125
180
|
version_requirements: *id010
|
126
181
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
182
|
+
name: rspec
|
128
183
|
prerelease: false
|
129
184
|
requirement: &id011 !ruby/object:Gem::Requirement
|
130
185
|
none: false
|
131
186
|
requirements:
|
132
|
-
- -
|
187
|
+
- - ~>
|
133
188
|
- !ruby/object:Gem::Version
|
134
|
-
|
135
|
-
|
189
|
+
hash: 7
|
190
|
+
segments:
|
191
|
+
- 2
|
192
|
+
version: "2"
|
193
|
+
type: :development
|
136
194
|
version_requirements: *id011
|
137
195
|
- !ruby/object:Gem::Dependency
|
138
|
-
name:
|
196
|
+
name: libarchive-static-ruby186
|
139
197
|
prerelease: false
|
140
198
|
requirement: &id012 !ruby/object:Gem::Requirement
|
141
199
|
none: false
|
142
200
|
requirements:
|
143
201
|
- - ">="
|
144
202
|
- !ruby/object:Gem::Version
|
145
|
-
|
203
|
+
hash: 23
|
204
|
+
segments:
|
205
|
+
- 1
|
206
|
+
- 0
|
207
|
+
- 0
|
208
|
+
version: 1.0.0
|
146
209
|
type: :runtime
|
147
210
|
version_requirements: *id012
|
148
211
|
- !ruby/object:Gem::Dependency
|
149
|
-
name:
|
212
|
+
name: highline
|
150
213
|
prerelease: false
|
151
214
|
requirement: &id013 !ruby/object:Gem::Requirement
|
152
215
|
none: false
|
153
216
|
requirements:
|
154
217
|
- - ">="
|
155
218
|
- !ruby/object:Gem::Version
|
156
|
-
|
219
|
+
hash: 11
|
220
|
+
segments:
|
221
|
+
- 1
|
222
|
+
- 6
|
223
|
+
- 2
|
224
|
+
version: 1.6.2
|
157
225
|
type: :runtime
|
158
226
|
version_requirements: *id013
|
159
227
|
- !ruby/object:Gem::Dependency
|
160
|
-
name:
|
228
|
+
name: log4r
|
161
229
|
prerelease: false
|
162
230
|
requirement: &id014 !ruby/object:Gem::Requirement
|
163
231
|
none: false
|
164
232
|
requirements:
|
165
233
|
- - ">="
|
166
234
|
- !ruby/object:Gem::Version
|
167
|
-
|
235
|
+
hash: 25
|
236
|
+
segments:
|
237
|
+
- 1
|
238
|
+
- 1
|
239
|
+
- 5
|
240
|
+
version: 1.1.5
|
168
241
|
type: :runtime
|
169
242
|
version_requirements: *id014
|
170
243
|
- !ruby/object:Gem::Dependency
|
171
|
-
name:
|
244
|
+
name: net-netrc
|
172
245
|
prerelease: false
|
173
246
|
requirement: &id015 !ruby/object:Gem::Requirement
|
174
247
|
none: false
|
175
248
|
requirements:
|
176
249
|
- - ">="
|
177
250
|
- !ruby/object:Gem::Version
|
178
|
-
|
251
|
+
hash: 19
|
252
|
+
segments:
|
253
|
+
- 0
|
254
|
+
- 2
|
255
|
+
- 2
|
256
|
+
version: 0.2.2
|
179
257
|
type: :runtime
|
180
258
|
version_requirements: *id015
|
181
259
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
260
|
+
name: net-sftp
|
183
261
|
prerelease: false
|
184
262
|
requirement: &id016 !ruby/object:Gem::Requirement
|
185
263
|
none: false
|
186
264
|
requirements:
|
187
265
|
- - ">="
|
188
266
|
- !ruby/object:Gem::Version
|
189
|
-
|
267
|
+
hash: 7
|
268
|
+
segments:
|
269
|
+
- 2
|
270
|
+
- 0
|
271
|
+
- 4
|
272
|
+
version: 2.0.4
|
190
273
|
type: :runtime
|
191
274
|
version_requirements: *id016
|
192
275
|
- !ruby/object:Gem::Dependency
|
193
|
-
name:
|
276
|
+
name: net-ssh
|
194
277
|
prerelease: false
|
195
278
|
requirement: &id017 !ruby/object:Gem::Requirement
|
196
279
|
none: false
|
197
280
|
requirements:
|
198
|
-
- -
|
281
|
+
- - ">="
|
199
282
|
- !ruby/object:Gem::Version
|
200
|
-
|
201
|
-
|
283
|
+
hash: 17
|
284
|
+
segments:
|
285
|
+
- 2
|
286
|
+
- 0
|
287
|
+
- 15
|
288
|
+
version: 2.0.15
|
289
|
+
type: :runtime
|
202
290
|
version_requirements: *id017
|
203
291
|
- !ruby/object:Gem::Dependency
|
204
|
-
name:
|
292
|
+
name: polyglot
|
205
293
|
prerelease: false
|
206
294
|
requirement: &id018 !ruby/object:Gem::Requirement
|
207
295
|
none: false
|
208
296
|
requirements:
|
209
297
|
- - ">="
|
210
298
|
- !ruby/object:Gem::Version
|
299
|
+
hash: 5
|
300
|
+
segments:
|
301
|
+
- 0
|
302
|
+
- 2
|
303
|
+
- 9
|
304
|
+
version: 0.2.9
|
305
|
+
type: :runtime
|
306
|
+
version_requirements: *id018
|
307
|
+
- !ruby/object:Gem::Dependency
|
308
|
+
name: rdoc
|
309
|
+
prerelease: false
|
310
|
+
requirement: &id019 !ruby/object:Gem::Requirement
|
311
|
+
none: false
|
312
|
+
requirements:
|
313
|
+
- - ">="
|
314
|
+
- !ruby/object:Gem::Version
|
315
|
+
hash: 27
|
316
|
+
segments:
|
317
|
+
- 2
|
318
|
+
- 4
|
319
|
+
- 2
|
320
|
+
version: 2.4.2
|
321
|
+
type: :runtime
|
322
|
+
version_requirements: *id019
|
323
|
+
- !ruby/object:Gem::Dependency
|
324
|
+
name: treetop
|
325
|
+
prerelease: false
|
326
|
+
requirement: &id020 !ruby/object:Gem::Requirement
|
327
|
+
none: false
|
328
|
+
requirements:
|
329
|
+
- - ">="
|
330
|
+
- !ruby/object:Gem::Version
|
331
|
+
hash: 3
|
332
|
+
segments:
|
333
|
+
- 1
|
334
|
+
- 4
|
335
|
+
- 2
|
336
|
+
version: 1.4.2
|
337
|
+
type: :runtime
|
338
|
+
version_requirements: *id020
|
339
|
+
- !ruby/object:Gem::Dependency
|
340
|
+
name: open4
|
341
|
+
prerelease: false
|
342
|
+
requirement: &id021 !ruby/object:Gem::Requirement
|
343
|
+
none: false
|
344
|
+
requirements:
|
345
|
+
- - ">="
|
346
|
+
- !ruby/object:Gem::Version
|
347
|
+
hash: 21
|
348
|
+
segments:
|
349
|
+
- 1
|
350
|
+
- 0
|
351
|
+
- 1
|
211
352
|
version: 1.0.1
|
212
353
|
type: :development
|
213
|
-
version_requirements: *
|
354
|
+
version_requirements: *id021
|
355
|
+
- !ruby/object:Gem::Dependency
|
356
|
+
name: rspec
|
357
|
+
prerelease: false
|
358
|
+
requirement: &id022 !ruby/object:Gem::Requirement
|
359
|
+
none: false
|
360
|
+
requirements:
|
361
|
+
- - ~>
|
362
|
+
- !ruby/object:Gem::Version
|
363
|
+
hash: 7
|
364
|
+
segments:
|
365
|
+
- 2
|
366
|
+
version: "2"
|
367
|
+
type: :development
|
368
|
+
version_requirements: *id022
|
214
369
|
description: Fig is a utility for configuring environments and managing dependencies across a team of developers. You give it a list of packages and a shell command to run; it creates an environment that includes those packages, then executes the shell command in it (the caller's environment is not affected).
|
215
370
|
email: git@foemmel.com
|
216
371
|
executables:
|
@@ -222,18 +377,31 @@ extra_rdoc_files:
|
|
222
377
|
- LICENSE
|
223
378
|
- README.md
|
224
379
|
files:
|
380
|
+
- Changes
|
381
|
+
- VERSION
|
225
382
|
- bin/fig
|
226
383
|
- bin/fig-download
|
227
384
|
- lib/fig.rb
|
385
|
+
- lib/fig/applicationconfiguration.rb
|
228
386
|
- lib/fig/backtrace.rb
|
387
|
+
- lib/fig/configfileerror.rb
|
229
388
|
- lib/fig/environment.rb
|
389
|
+
- lib/fig/figrc.rb
|
230
390
|
- lib/fig/grammar.treetop
|
391
|
+
- lib/fig/log4rconfigerror.rb
|
392
|
+
- lib/fig/logging.rb
|
393
|
+
- lib/fig/networkerror.rb
|
394
|
+
- lib/fig/notfounderror.rb
|
231
395
|
- lib/fig/options.rb
|
232
396
|
- lib/fig/os.rb
|
233
397
|
- lib/fig/package.rb
|
398
|
+
- lib/fig/packageerror.rb
|
234
399
|
- lib/fig/parser.rb
|
235
400
|
- lib/fig/repository.rb
|
401
|
+
- lib/fig/repositoryerror.rb
|
236
402
|
- lib/fig/retriever.rb
|
403
|
+
- lib/fig/urlaccesserror.rb
|
404
|
+
- lib/fig/userinputerror.rb
|
237
405
|
- lib/fig/windows.rb
|
238
406
|
- LICENSE
|
239
407
|
- README.md
|
@@ -251,19 +419,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
251
419
|
requirements:
|
252
420
|
- - ">="
|
253
421
|
- !ruby/object:Gem::Version
|
422
|
+
hash: 3
|
423
|
+
segments:
|
424
|
+
- 0
|
254
425
|
version: "0"
|
255
426
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
256
427
|
none: false
|
257
428
|
requirements:
|
258
429
|
- - ">="
|
259
430
|
- !ruby/object:Gem::Version
|
431
|
+
hash: 3
|
432
|
+
segments:
|
433
|
+
- 0
|
260
434
|
version: "0"
|
261
435
|
requirements: []
|
262
436
|
|
263
437
|
rubyforge_project:
|
264
|
-
rubygems_version: 1.
|
438
|
+
rubygems_version: 1.3.7
|
265
439
|
signing_key:
|
266
440
|
specification_version: 3
|
267
|
-
summary: Fig is a utility for configuring environments and managing dependencies across a team of developers
|
441
|
+
summary: Fig is a utility for configuring environments and managing dependencies across a team of developers.
|
268
442
|
test_files: []
|
269
443
|
|