fig 0.1.39-java → 0.1.41-java
Sign up to get free protection for your applications and to get access to all the features.
- data/Changes +45 -0
- data/LICENSE +2 -2
- data/README.md +154 -100
- data/VERSION +1 -0
- data/bin/fig +4 -182
- data/lib/fig.rb +222 -0
- 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
- metadata +115 -21
data/lib/fig/parser.rb
CHANGED
@@ -2,6 +2,8 @@ require 'polyglot'
|
|
2
2
|
require 'treetop'
|
3
3
|
|
4
4
|
require 'fig/grammar'
|
5
|
+
require 'fig/logging'
|
6
|
+
require 'fig/packageerror'
|
5
7
|
|
6
8
|
module Fig
|
7
9
|
class Parser
|
@@ -12,16 +14,11 @@ module Fig
|
|
12
14
|
def parse_package(package_name, version_name, directory, input)
|
13
15
|
input = input.gsub(/#.*$/, '')
|
14
16
|
result = @parser.parse(" #{input} ")
|
15
|
-
if result.nil?
|
16
|
-
|
17
|
-
|
17
|
+
if result.nil?
|
18
|
+
Fig::Logging.fatal "#{directory}: #{@parser.failure_reason}"
|
19
|
+
raise PackageError.new
|
18
20
|
end
|
19
21
|
result.to_package(package_name, version_name, directory)
|
20
22
|
end
|
21
|
-
|
22
|
-
# def parse_descriptor(descriptor)
|
23
|
-
# puts @parser.methods.sort
|
24
|
-
# end
|
25
23
|
end
|
26
|
-
|
27
24
|
end
|
data/lib/fig/repository.rb
CHANGED
@@ -1,12 +1,17 @@
|
|
1
|
+
require 'fig/logging'
|
2
|
+
require 'fig/notfounderror'
|
1
3
|
require 'fig/parser'
|
4
|
+
require 'fig/repositoryerror'
|
5
|
+
require 'fig/urlaccesserror'
|
2
6
|
|
3
7
|
module Fig
|
4
8
|
class Repository
|
5
|
-
def initialize(os, local_repository_dir, remote_repository_url, remote_repository_user=nil, update=false, update_if_missing=true)
|
9
|
+
def initialize(os, local_repository_dir, remote_repository_url, application_config, remote_repository_user=nil, update=false, update_if_missing=true)
|
6
10
|
@os = os
|
7
11
|
@local_repository_dir = local_repository_dir
|
8
12
|
@remote_repository_url = remote_repository_url
|
9
13
|
@remote_repository_user = remote_repository_user
|
14
|
+
@application_config = application_config
|
10
15
|
@update = update
|
11
16
|
@update_if_missing = update_if_missing
|
12
17
|
@parser = Parser.new
|
@@ -20,7 +25,7 @@ module Fig
|
|
20
25
|
end
|
21
26
|
end
|
22
27
|
|
23
|
-
def clean(package_name, version_name)
|
28
|
+
def clean(package_name, version_name)
|
24
29
|
dir = File.join(@local_repository_dir, package_name)
|
25
30
|
dir = File.join(dir, version_name) if version_name
|
26
31
|
FileUtils.rm_rf(dir)
|
@@ -42,13 +47,13 @@ module Fig
|
|
42
47
|
@os.download_list(@remote_repository_url)
|
43
48
|
end
|
44
49
|
|
45
|
-
def publish_package(package_statements, package_name, version_name, local_only)
|
50
|
+
def publish_package(package_statements, package_name, version_name, local_only)
|
46
51
|
temp_dir = temp_dir_for_package(package_name, version_name)
|
47
52
|
@os.clear_directory(temp_dir)
|
48
53
|
local_dir = local_dir_for_package(package_name, version_name)
|
49
54
|
@os.clear_directory(local_dir)
|
50
|
-
fig_file = File.join(temp_dir,
|
51
|
-
content = bundle_resources(package_statements).map do |statement|
|
55
|
+
fig_file = File.join(temp_dir, '.fig')
|
56
|
+
content = bundle_resources(package_statements).map do |statement|
|
52
57
|
if statement.is_a?(Publish)
|
53
58
|
nil
|
54
59
|
elsif statement.is_a?(Archive) || statement.is_a?(Resource)
|
@@ -56,17 +61,17 @@ module Fig
|
|
56
61
|
archive_name = statement.url
|
57
62
|
archive_remote = "#{remote_dir_for_package(package_name, version_name)}/#{statement.url}"
|
58
63
|
else
|
59
|
-
archive_name = statement.url.split(
|
64
|
+
archive_name = statement.url.split('/').last
|
60
65
|
archive_remote = "#{remote_dir_for_package(package_name, version_name)}/#{archive_name}"
|
61
66
|
end
|
62
|
-
if
|
67
|
+
if is_url_with_access?(statement.url)
|
63
68
|
archive_local = File.join(temp_dir, archive_name)
|
64
69
|
@os.download(statement.url, archive_local)
|
65
70
|
else
|
66
71
|
archive_local = statement.url
|
67
72
|
end
|
68
73
|
@os.upload(archive_local, archive_remote, @remote_repository_user) unless local_only
|
69
|
-
@os.copy(archive_local, local_dir +
|
74
|
+
@os.copy(archive_local, local_dir + '/' + archive_name)
|
70
75
|
if statement.is_a?(Archive)
|
71
76
|
@os.unpack_archive(local_dir, archive_name)
|
72
77
|
end
|
@@ -92,7 +97,7 @@ module Fig
|
|
92
97
|
end
|
93
98
|
if resources.size > 0
|
94
99
|
resources = expand_globs_from(resources)
|
95
|
-
file =
|
100
|
+
file = 'resources.tar.gz'
|
96
101
|
@os.create_archive(file, resources)
|
97
102
|
new_package_statements.unshift(Archive.new(file))
|
98
103
|
at_exit { File.delete(file) }
|
@@ -101,12 +106,17 @@ module Fig
|
|
101
106
|
end
|
102
107
|
|
103
108
|
def load_package(package_name, version_name)
|
109
|
+
Logging.debug "Considering #{package_name}/#{version_name}."
|
104
110
|
if @update || (@update_if_missing && package_missing?(package_name, version_name))
|
105
111
|
update_package(package_name, version_name)
|
106
112
|
end
|
107
113
|
read_local_package(package_name, version_name)
|
108
114
|
end
|
109
115
|
|
116
|
+
def updating?
|
117
|
+
return @update || @update_if_missing
|
118
|
+
end
|
119
|
+
|
110
120
|
def update_package(package_name, version_name)
|
111
121
|
remote_fig_file = remote_fig_file_for_package(package_name, version_name)
|
112
122
|
local_fig_file = local_fig_file_for_package(package_name, version_name)
|
@@ -114,17 +124,17 @@ module Fig
|
|
114
124
|
if @os.download(remote_fig_file, local_fig_file)
|
115
125
|
install_package(package_name, version_name)
|
116
126
|
end
|
117
|
-
rescue
|
118
|
-
|
127
|
+
rescue NotFoundError
|
128
|
+
Logging.fatal "Package not found in remote repository: #{package_name}/#{version_name}"
|
119
129
|
delete_local_package(package_name, version_name)
|
120
|
-
|
130
|
+
raise RepositoryError.new
|
121
131
|
end
|
122
132
|
end
|
123
133
|
|
124
134
|
def read_local_package(package_name, version_name)
|
125
135
|
dir = local_dir_for_package(package_name, version_name)
|
126
136
|
read_package_from_directory(dir, package_name, version_name)
|
127
|
-
end
|
137
|
+
end
|
128
138
|
|
129
139
|
def read_remote_package(package_name, version_name)
|
130
140
|
url = remote_fig_file_for_package(package_name, version_name)
|
@@ -133,21 +143,21 @@ module Fig
|
|
133
143
|
end
|
134
144
|
|
135
145
|
def read_package_from_directory(dir, package_name, version_name)
|
136
|
-
file = File.join(dir,
|
146
|
+
file = File.join(dir, '.fig')
|
137
147
|
if not File.exist?(file)
|
138
|
-
file = File.join(dir,
|
148
|
+
file = File.join(dir, 'package.fig')
|
139
149
|
end
|
140
150
|
if not File.exist?(file)
|
141
|
-
|
142
|
-
|
151
|
+
Logging.fatal "Fig file not found for package: #{file}"
|
152
|
+
raise RepositoryError.new
|
143
153
|
end
|
144
154
|
read_package_from_file(file, package_name, version_name)
|
145
155
|
end
|
146
156
|
|
147
157
|
def read_package_from_file(file_name, package_name, version_name)
|
148
158
|
if not @os.exist?(file_name)
|
149
|
-
|
150
|
-
|
159
|
+
Logging.fatal "Package not found: #{package_name}/#{version_name}"
|
160
|
+
raise RepositoryError.new
|
151
161
|
end
|
152
162
|
modified_time = @os.mtime(file_name)
|
153
163
|
content = @os.read(file_name)
|
@@ -158,7 +168,7 @@ module Fig
|
|
158
168
|
descriptor = "#{package_name}/#{version_name}"
|
159
169
|
dir = @overrides[descriptor]
|
160
170
|
if dir
|
161
|
-
|
171
|
+
Logging.info "override: #{descriptor}=#{dir}"
|
162
172
|
else
|
163
173
|
dir = File.join(@local_repository_dir, package_name, version_name)
|
164
174
|
end
|
@@ -174,13 +184,13 @@ module Fig
|
|
174
184
|
@os.clear_directory(temp_dir)
|
175
185
|
package.archive_urls.each do |archive_url|
|
176
186
|
if not is_url?(archive_url)
|
177
|
-
archive_url = remote_dir_for_package(package_name, version_name) +
|
187
|
+
archive_url = remote_dir_for_package(package_name, version_name) + '/' + archive_url
|
178
188
|
end
|
179
189
|
@os.download_archive(archive_url, File.join(temp_dir))
|
180
190
|
end
|
181
191
|
package.resource_urls.each do |resource_url|
|
182
192
|
if not is_url?(resource_url)
|
183
|
-
resource_url = remote_dir_for_package(package_name, version_name) +
|
193
|
+
resource_url = remote_dir_for_package(package_name, version_name) + '/' + resource_url
|
184
194
|
end
|
185
195
|
@os.download_resource(resource_url, File.join(temp_dir))
|
186
196
|
end
|
@@ -188,13 +198,13 @@ module Fig
|
|
188
198
|
@os.clear_directory(local_dir)
|
189
199
|
# some packages contain no files, only a fig file.
|
190
200
|
if not (package.archive_urls.empty? && package.resource_urls.empty?)
|
191
|
-
FileUtils.mv(Dir.glob(File.join(temp_dir,
|
201
|
+
FileUtils.mv(Dir.glob(File.join(temp_dir, '*')), local_dir)
|
192
202
|
end
|
193
203
|
write_local_package(package_name, version_name, package)
|
194
204
|
rescue
|
195
|
-
|
205
|
+
Logging.fatal 'Install failed, cleaning up.'
|
196
206
|
delete_local_package(package_name, version_name)
|
197
|
-
|
207
|
+
raise RepositoryError.new
|
198
208
|
end
|
199
209
|
end
|
200
210
|
|
@@ -209,6 +219,12 @@ module Fig
|
|
209
219
|
not (/ftp:\/\/|http:\/\/|file:\/\/|ssh:\/\// =~ url).nil?
|
210
220
|
end
|
211
221
|
|
222
|
+
def is_url_with_access?(url)
|
223
|
+
return false if not is_url?(url)
|
224
|
+
raise URLAccessError.new(url) if not @application_config.url_access_allowed?(url)
|
225
|
+
return true
|
226
|
+
end
|
227
|
+
|
212
228
|
def delete_local_package(package_name, version_name)
|
213
229
|
FileUtils.rm_rf(local_dir_for_package(package_name, version_name))
|
214
230
|
end
|
@@ -220,10 +236,10 @@ module Fig
|
|
220
236
|
|
221
237
|
def remote_fig_file_for_package(package_name, version_name)
|
222
238
|
"#{@remote_repository_url}/#{package_name}/#{version_name}/.fig"
|
223
|
-
end
|
239
|
+
end
|
224
240
|
|
225
241
|
def local_fig_file_for_package(package_name, version_name)
|
226
|
-
File.join(local_dir_for_package(package_name, version_name),
|
242
|
+
File.join(local_dir_for_package(package_name, version_name), '.fig')
|
227
243
|
end
|
228
244
|
|
229
245
|
def remote_dir_for_package(package_name, version_name)
|
@@ -231,7 +247,7 @@ module Fig
|
|
231
247
|
end
|
232
248
|
|
233
249
|
def temp_dir_for_package(package_name, version_name)
|
234
|
-
File.join(@local_repository_dir,
|
250
|
+
File.join(@local_repository_dir, 'tmp')
|
235
251
|
end
|
236
252
|
|
237
253
|
def package_missing?(package_name, version_name)
|
data/lib/fig/retriever.rb
CHANGED
@@ -1,35 +1,37 @@
|
|
1
1
|
require 'ostruct'
|
2
2
|
require 'set'
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
require 'fig/logging'
|
5
|
+
|
6
|
+
# This class copies files from the project directories in ~/.fighome to the
|
7
|
+
# user's working directory. It keeps track of which files have already been copied, and which
|
6
8
|
# package/versions they came from, and deletes files as necessary to ensure that
|
7
|
-
# we never have files from two different versions of the same package in the user's
|
8
|
-
# working directory.
|
9
|
+
# we never have files from two different versions of the same package in the user's
|
10
|
+
# working directory.
|
9
11
|
class Retriever
|
10
12
|
def initialize(base_dir)
|
11
13
|
@base_dir = base_dir
|
12
14
|
@configs = {}
|
13
|
-
@fig_dir = File.join(@base_dir,
|
15
|
+
@fig_dir = File.join(@base_dir, '.fig')
|
14
16
|
|
15
|
-
file = File.join(@fig_dir,
|
17
|
+
file = File.join(@fig_dir, 'retrieve')
|
16
18
|
if File.exist?(file)
|
17
19
|
load(file)
|
18
20
|
end
|
19
21
|
end
|
20
22
|
|
21
|
-
def
|
23
|
+
def with_package_config(name, version)
|
22
24
|
if name and version
|
23
25
|
@config = @configs[name]
|
24
26
|
if @config && @config.version != version
|
25
27
|
@config.files.each do |relpath|
|
26
|
-
|
28
|
+
Fig::Logging.info "- [#{@config.name}/#{@config.version}] #{relpath}"
|
27
29
|
FileUtils.rm_f(File.join(@base_dir, relpath))
|
28
30
|
end
|
29
31
|
@config = nil
|
30
32
|
end
|
31
33
|
if not @config
|
32
|
-
@config =
|
34
|
+
@config = new_package_config(name, version)
|
33
35
|
@configs[name] = @config
|
34
36
|
end
|
35
37
|
else
|
@@ -44,10 +46,10 @@ class Retriever
|
|
44
46
|
|
45
47
|
def save
|
46
48
|
FileUtils.mkdir_p(@fig_dir)
|
47
|
-
File.open(File.join(@fig_dir,
|
49
|
+
File.open(File.join(@fig_dir, 'retrieve'), 'w') do |f|
|
48
50
|
@configs.each do |name,config|
|
49
51
|
config.files.each do |target|
|
50
|
-
f << target <<
|
52
|
+
f << target << '=' << config.name << '/' << config.version << "\n"
|
51
53
|
end
|
52
54
|
end
|
53
55
|
end
|
@@ -65,10 +67,10 @@ private
|
|
65
67
|
config = @configs[config_name]
|
66
68
|
if config
|
67
69
|
if config.version != config_version
|
68
|
-
raise
|
70
|
+
raise 'version mismatch in .figretrieve'
|
69
71
|
end
|
70
72
|
else
|
71
|
-
config =
|
73
|
+
config = new_package_config(config_name, config_version)
|
72
74
|
@configs[config_name] = config
|
73
75
|
end
|
74
76
|
config.files << target
|
@@ -78,7 +80,7 @@ private
|
|
78
80
|
end
|
79
81
|
end
|
80
82
|
|
81
|
-
def
|
83
|
+
def new_package_config(name, version)
|
82
84
|
config = OpenStruct.new
|
83
85
|
config.name = name
|
84
86
|
config.version = version
|
@@ -91,13 +93,20 @@ private
|
|
91
93
|
if File.directory?(source)
|
92
94
|
FileUtils.mkdir_p(target)
|
93
95
|
Dir.foreach(source) do |child|
|
94
|
-
if child !=
|
95
|
-
|
96
|
+
if child != '.' and child != '..'
|
97
|
+
source_file = File.join(source, child)
|
98
|
+
target_file = File.join(relpath, child)
|
99
|
+
Fig::Logging.debug "Copying #{source_file} to #{target_file}."
|
100
|
+
copy(source_file, target_file)
|
96
101
|
end
|
97
102
|
end
|
98
103
|
else
|
99
104
|
if !File.exist?(target) || File.mtime(source) > File.mtime(target)
|
100
|
-
|
105
|
+
if Fig::Logging.debug?
|
106
|
+
Fig::Logging.debug "Copying package [#{@config.name}/#{@config.version}] from #{source} to #{target}."
|
107
|
+
else
|
108
|
+
Fig::Logging.info "+ [#{@config.name}/#{@config.version}] #{relpath}"
|
109
|
+
end
|
101
110
|
FileUtils.mkdir_p(File.dirname(target))
|
102
111
|
FileUtils.cp(source, target, :preserve => true)
|
103
112
|
end
|
data/lib/fig/windows.rb
CHANGED
@@ -22,12 +22,12 @@ EOF
|
|
22
22
|
|
23
23
|
def self.with_generated_batch_script(cmd)
|
24
24
|
command = cmd.join(' ')
|
25
|
-
template = ERB.new(BATCH_SCRIPT_TEMPLATE, 0,
|
25
|
+
template = ERB.new(BATCH_SCRIPT_TEMPLATE, 0, '%')
|
26
26
|
output = template.result(binding)
|
27
27
|
begin
|
28
|
-
tf = File.new(
|
28
|
+
tf = File.new('C:/tmp/fig_command.bat', 'w')
|
29
29
|
FileUtils.chmod(0755, tf.path)
|
30
|
-
File.open(tf.path,
|
30
|
+
File.open(tf.path, 'w') do |fh|
|
31
31
|
fh.puts output
|
32
32
|
end
|
33
33
|
tf.close
|
metadata
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
4
|
+
hash: 73
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 41
|
10
|
+
version: 0.1.41
|
6
11
|
platform: java
|
7
12
|
authors:
|
8
13
|
- Matthew Foemmel
|
@@ -10,29 +15,39 @@ 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
|
17
|
-
name:
|
22
|
+
name: highline
|
18
23
|
prerelease: false
|
19
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
20
25
|
none: false
|
21
26
|
requirements:
|
22
27
|
- - ">="
|
23
28
|
- !ruby/object:Gem::Version
|
24
|
-
|
29
|
+
hash: 11
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 6
|
33
|
+
- 2
|
34
|
+
version: 1.6.2
|
25
35
|
type: :runtime
|
26
36
|
version_requirements: *id001
|
27
37
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
38
|
+
name: log4r
|
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: 25
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 1
|
49
|
+
- 5
|
50
|
+
version: 1.1.5
|
36
51
|
type: :runtime
|
37
52
|
version_requirements: *id002
|
38
53
|
- !ruby/object:Gem::Dependency
|
@@ -43,64 +58,124 @@ dependencies:
|
|
43
58
|
requirements:
|
44
59
|
- - ">="
|
45
60
|
- !ruby/object:Gem::Version
|
61
|
+
hash: 19
|
62
|
+
segments:
|
63
|
+
- 0
|
64
|
+
- 2
|
65
|
+
- 2
|
46
66
|
version: 0.2.2
|
47
67
|
type: :runtime
|
48
68
|
version_requirements: *id003
|
49
69
|
- !ruby/object:Gem::Dependency
|
50
|
-
name:
|
70
|
+
name: net-sftp
|
51
71
|
prerelease: false
|
52
72
|
requirement: &id004 !ruby/object:Gem::Requirement
|
53
73
|
none: false
|
54
74
|
requirements:
|
55
75
|
- - ">="
|
56
76
|
- !ruby/object:Gem::Version
|
57
|
-
|
77
|
+
hash: 7
|
78
|
+
segments:
|
79
|
+
- 2
|
80
|
+
- 0
|
81
|
+
- 4
|
82
|
+
version: 2.0.4
|
58
83
|
type: :runtime
|
59
84
|
version_requirements: *id004
|
60
85
|
- !ruby/object:Gem::Dependency
|
61
|
-
name:
|
86
|
+
name: net-ssh
|
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: 17
|
94
|
+
segments:
|
95
|
+
- 2
|
96
|
+
- 0
|
97
|
+
- 15
|
98
|
+
version: 2.0.15
|
69
99
|
type: :runtime
|
70
100
|
version_requirements: *id005
|
71
101
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
102
|
+
name: polyglot
|
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: 5
|
110
|
+
segments:
|
111
|
+
- 0
|
112
|
+
- 2
|
113
|
+
- 9
|
114
|
+
version: 0.2.9
|
80
115
|
type: :runtime
|
81
116
|
version_requirements: *id006
|
82
117
|
- !ruby/object:Gem::Dependency
|
83
|
-
name:
|
118
|
+
name: rdoc
|
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
|
-
|
91
|
-
|
125
|
+
hash: 27
|
126
|
+
segments:
|
127
|
+
- 2
|
128
|
+
- 4
|
129
|
+
- 2
|
130
|
+
version: 2.4.2
|
131
|
+
type: :runtime
|
92
132
|
version_requirements: *id007
|
93
133
|
- !ruby/object:Gem::Dependency
|
94
|
-
name:
|
134
|
+
name: treetop
|
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
|
141
|
+
hash: 3
|
142
|
+
segments:
|
143
|
+
- 1
|
144
|
+
- 4
|
145
|
+
- 2
|
146
|
+
version: 1.4.2
|
147
|
+
type: :runtime
|
148
|
+
version_requirements: *id008
|
149
|
+
- !ruby/object:Gem::Dependency
|
150
|
+
name: open4
|
151
|
+
prerelease: false
|
152
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ">="
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
hash: 21
|
158
|
+
segments:
|
159
|
+
- 1
|
160
|
+
- 0
|
161
|
+
- 1
|
101
162
|
version: 1.0.1
|
102
163
|
type: :development
|
103
|
-
version_requirements: *
|
164
|
+
version_requirements: *id009
|
165
|
+
- !ruby/object:Gem::Dependency
|
166
|
+
name: rspec
|
167
|
+
prerelease: false
|
168
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ~>
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
hash: 7
|
174
|
+
segments:
|
175
|
+
- 2
|
176
|
+
version: "2"
|
177
|
+
type: :development
|
178
|
+
version_requirements: *id010
|
104
179
|
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).
|
105
180
|
email: git@foemmel.com
|
106
181
|
executables:
|
@@ -112,18 +187,31 @@ extra_rdoc_files:
|
|
112
187
|
- LICENSE
|
113
188
|
- README.md
|
114
189
|
files:
|
190
|
+
- Changes
|
191
|
+
- VERSION
|
115
192
|
- bin/fig
|
116
193
|
- bin/fig-download
|
117
194
|
- lib/fig.rb
|
195
|
+
- lib/fig/applicationconfiguration.rb
|
118
196
|
- lib/fig/backtrace.rb
|
197
|
+
- lib/fig/configfileerror.rb
|
119
198
|
- lib/fig/environment.rb
|
199
|
+
- lib/fig/figrc.rb
|
120
200
|
- lib/fig/grammar.treetop
|
201
|
+
- lib/fig/log4rconfigerror.rb
|
202
|
+
- lib/fig/logging.rb
|
203
|
+
- lib/fig/networkerror.rb
|
204
|
+
- lib/fig/notfounderror.rb
|
121
205
|
- lib/fig/options.rb
|
122
206
|
- lib/fig/os.rb
|
123
207
|
- lib/fig/package.rb
|
208
|
+
- lib/fig/packageerror.rb
|
124
209
|
- lib/fig/parser.rb
|
125
210
|
- lib/fig/repository.rb
|
211
|
+
- lib/fig/repositoryerror.rb
|
126
212
|
- lib/fig/retriever.rb
|
213
|
+
- lib/fig/urlaccesserror.rb
|
214
|
+
- lib/fig/userinputerror.rb
|
127
215
|
- lib/fig/windows.rb
|
128
216
|
- LICENSE
|
129
217
|
- README.md
|
@@ -141,19 +229,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
141
229
|
requirements:
|
142
230
|
- - ">="
|
143
231
|
- !ruby/object:Gem::Version
|
232
|
+
hash: 3
|
233
|
+
segments:
|
234
|
+
- 0
|
144
235
|
version: "0"
|
145
236
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
237
|
none: false
|
147
238
|
requirements:
|
148
239
|
- - ">="
|
149
240
|
- !ruby/object:Gem::Version
|
241
|
+
hash: 3
|
242
|
+
segments:
|
243
|
+
- 0
|
150
244
|
version: "0"
|
151
245
|
requirements: []
|
152
246
|
|
153
247
|
rubyforge_project:
|
154
|
-
rubygems_version: 1.
|
248
|
+
rubygems_version: 1.3.7
|
155
249
|
signing_key:
|
156
250
|
specification_version: 3
|
157
|
-
summary: Fig is a utility for configuring environments and managing dependencies across a team of developers
|
251
|
+
summary: Fig is a utility for configuring environments and managing dependencies across a team of developers.
|
158
252
|
test_files: []
|
159
253
|
|