fig 0.1.39-java → 0.1.41-java
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 +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
|
|