fig18 0.1.41 → 0.1.42
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 +10 -0
- data/VERSION +1 -1
- data/lib/fig/environment.rb +8 -4
- data/lib/fig/grammar.treetop +57 -17
- data/lib/fig/options.rb +10 -5
- data/lib/fig/os.rb +33 -12
- data/lib/fig/package/archive.rb +24 -0
- data/lib/fig/package/command.rb +20 -0
- data/lib/fig/package/configuration.rb +40 -0
- data/lib/fig/package/include.rb +30 -0
- data/lib/fig/package/install.rb +21 -0
- data/lib/fig/package/override.rb +21 -0
- data/lib/fig/package/path.rb +21 -0
- data/lib/fig/package/publish.rb +21 -0
- data/lib/fig/package/resource.rb +24 -0
- data/lib/fig/package/retrieve.rb +21 -0
- data/lib/fig/package/set.rb +21 -0
- data/lib/fig/package/statement.rb +12 -0
- data/lib/fig/package.rb +43 -190
- data/lib/fig/parser.rb +17 -4
- data/lib/fig/repository.rb +18 -23
- data/lib/fig/urlaccesserror.rb +6 -2
- data/lib/fig.rb +15 -7
- metadata +18 -125
data/Changes
CHANGED
@@ -1,9 +1,19 @@
|
|
1
|
+
v0.1.xx
|
2
|
+
|
3
|
+
- "file:" protocol works for FIG_REMOTE_HOME.
|
4
|
+
|
5
|
+
- Testing no longer requires ssh.
|
6
|
+
|
7
|
+
|
1
8
|
v0.1.41
|
2
9
|
|
3
10
|
- Release cleanup
|
4
11
|
|
12
|
+
|
5
13
|
v0.1.40
|
6
14
|
|
15
|
+
- Works on Mac (in conjunction with libarchive-static 1.0.1).
|
16
|
+
|
7
17
|
- Supports configuration via rc files in JSON format. These can be (in
|
8
18
|
ascending order of priority of values):
|
9
19
|
- in the repository under "_meta/figrc"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.42
|
data/lib/fig/environment.rb
CHANGED
@@ -2,6 +2,10 @@ require 'stringio'
|
|
2
2
|
|
3
3
|
require 'fig/backtrace'
|
4
4
|
require 'fig/logging'
|
5
|
+
require 'fig/package/command'
|
6
|
+
require 'fig/package/include'
|
7
|
+
require 'fig/package/path'
|
8
|
+
require 'fig/package/set'
|
5
9
|
require 'fig/repositoryerror'
|
6
10
|
|
7
11
|
module Fig
|
@@ -72,13 +76,13 @@ module Fig
|
|
72
76
|
|
73
77
|
def apply_config_statement(base_package, statement, backtrace)
|
74
78
|
case statement
|
75
|
-
when Path
|
79
|
+
when Package::Path
|
76
80
|
append_variable(base_package, statement.name, statement.value)
|
77
|
-
when Set
|
81
|
+
when Package::Set
|
78
82
|
set_variable(base_package, statement.name, statement.value)
|
79
|
-
when Include
|
83
|
+
when Package::Include
|
80
84
|
include_config(base_package, statement.package_name, statement.config_name, statement.version_name, statement.overrides, backtrace)
|
81
|
-
when Command
|
85
|
+
when Package::Command
|
82
86
|
# ignore
|
83
87
|
else
|
84
88
|
fail "Unexpected statement: #{statement}"
|
data/lib/fig/grammar.treetop
CHANGED
@@ -1,4 +1,15 @@
|
|
1
1
|
require 'fig/package'
|
2
|
+
require 'fig/package/archive'
|
3
|
+
require 'fig/package/command'
|
4
|
+
require 'fig/package/configuration'
|
5
|
+
require 'fig/package/include'
|
6
|
+
require 'fig/package/install'
|
7
|
+
require 'fig/package/override'
|
8
|
+
require 'fig/package/path'
|
9
|
+
require 'fig/package/publish'
|
10
|
+
require 'fig/package/resource'
|
11
|
+
require 'fig/package/retrieve'
|
12
|
+
require 'fig/package/set'
|
2
13
|
|
3
14
|
module Fig
|
4
15
|
|
@@ -6,7 +17,12 @@ grammar Fig
|
|
6
17
|
rule package
|
7
18
|
ws statements:(package_statement*) {
|
8
19
|
def to_package(package_name, version_name, directory)
|
9
|
-
Package.new(
|
20
|
+
Package.new(
|
21
|
+
package_name,
|
22
|
+
version_name,
|
23
|
+
directory,
|
24
|
+
statements.elements.map { |statement| statement.to_package_statement }
|
25
|
+
)
|
10
26
|
end
|
11
27
|
}
|
12
28
|
end
|
@@ -18,7 +34,7 @@ grammar Fig
|
|
18
34
|
rule archive
|
19
35
|
"archive" ws url {
|
20
36
|
def to_package_statement
|
21
|
-
Archive.new(url.value.text_value)
|
37
|
+
Package::Archive.new(url.value.text_value)
|
22
38
|
end
|
23
39
|
}
|
24
40
|
end
|
@@ -26,23 +42,31 @@ grammar Fig
|
|
26
42
|
rule resource
|
27
43
|
"resource" ws url {
|
28
44
|
def to_package_statement
|
29
|
-
Resource.new(url.value.text_value)
|
45
|
+
Package::Resource.new(url.value.text_value)
|
30
46
|
end
|
31
47
|
}
|
32
48
|
end
|
33
49
|
|
34
50
|
rule retrieve
|
35
|
-
"retrieve" ws var:
|
51
|
+
"retrieve" ws var:retrieve_variable "->" path:retrieve_path ws {
|
36
52
|
def to_package_statement
|
37
|
-
Retrieve.new(var.text_value, path.text_value)
|
53
|
+
Package::Retrieve.new(var.text_value, path.text_value)
|
38
54
|
end
|
39
55
|
}
|
40
56
|
end
|
41
57
|
|
58
|
+
rule retrieve_variable
|
59
|
+
[@a-zA-Z0-9/._]+
|
60
|
+
end
|
61
|
+
|
62
|
+
rule retrieve_path
|
63
|
+
[a-zA-Z0-9_/.\[\]-]+
|
64
|
+
end
|
65
|
+
|
42
66
|
rule install
|
43
67
|
"install" ws statements:config_statement* "end" ws {
|
44
68
|
def to_package_statement
|
45
|
-
Install.new(statements.elements.map { |statement| statement.to_config_statement })
|
69
|
+
Package::Install.new(statements.elements.map { |statement| statement.to_config_statement })
|
46
70
|
end
|
47
71
|
}
|
48
72
|
end
|
@@ -50,7 +74,7 @@ grammar Fig
|
|
50
74
|
rule config
|
51
75
|
"config" ws config_name ws statements:config_statement* "end" ws {
|
52
76
|
def to_package_statement
|
53
|
-
Configuration.new(config_name.text_value, statements.elements.map { |statement| statement.to_config_statement })
|
77
|
+
Package::Configuration.new(config_name.text_value, statements.elements.map { |statement| statement.to_config_statement })
|
54
78
|
end
|
55
79
|
}
|
56
80
|
end
|
@@ -65,7 +89,7 @@ grammar Fig
|
|
65
89
|
package = descriptor.respond_to?(:package) ? descriptor.package.text_value : nil
|
66
90
|
config = descriptor.get_config
|
67
91
|
version = descriptor.get_version
|
68
|
-
Include.new(package, config, version, overrides.elements.map{ |e| e.to_override })
|
92
|
+
Package::Include.new(package, config, version, overrides.elements.map{ |e| e.to_override })
|
69
93
|
end
|
70
94
|
}
|
71
95
|
end
|
@@ -73,31 +97,47 @@ grammar Fig
|
|
73
97
|
rule override
|
74
98
|
"override" ws package_name "/" version_name ws {
|
75
99
|
def to_override
|
76
|
-
return Override.new(package_name.text_value, version_name.text_value)
|
100
|
+
return Package::Override.new(package_name.text_value, version_name.text_value)
|
77
101
|
end
|
78
102
|
}
|
79
103
|
end
|
80
104
|
|
81
105
|
rule path
|
82
|
-
("append" / "path" / "add") ws name:
|
106
|
+
("append" / "path" / "add") ws name:path_name "=" value:path_value ws {
|
83
107
|
def to_config_statement
|
84
|
-
Path.new(name.text_value, value.text_value)
|
108
|
+
Package::Path.new(name.text_value, value.text_value)
|
85
109
|
end
|
86
110
|
}
|
87
111
|
end
|
88
112
|
|
113
|
+
rule path_name
|
114
|
+
[a-zA-Z0-9_]+
|
115
|
+
end
|
116
|
+
|
117
|
+
rule path_value
|
118
|
+
[@a-zA-Z0-9/\\._-]+
|
119
|
+
end
|
120
|
+
|
89
121
|
rule set
|
90
|
-
"set" ws name:
|
122
|
+
"set" ws name:set_name "=" value:set_value ws {
|
91
123
|
def to_config_statement
|
92
|
-
Set.new(name.text_value, value.text_value)
|
124
|
+
Package::Set.new(name.text_value, value.text_value)
|
93
125
|
end
|
94
126
|
}
|
95
127
|
end
|
96
128
|
|
129
|
+
rule set_name
|
130
|
+
[a-zA-Z0-9_]+
|
131
|
+
end
|
132
|
+
|
133
|
+
rule set_value
|
134
|
+
[@a-zA-Z0-9/\\._-]+
|
135
|
+
end
|
136
|
+
|
97
137
|
rule command
|
98
138
|
"command" ws string {
|
99
139
|
def to_config_statement
|
100
|
-
Command.new(string.value.text_value)
|
140
|
+
Package::Command.new(string.value.text_value)
|
101
141
|
end
|
102
142
|
}
|
103
143
|
end
|
@@ -134,11 +174,11 @@ grammar Fig
|
|
134
174
|
end
|
135
175
|
|
136
176
|
rule version_name
|
137
|
-
[a-zA-Z0-9_
|
177
|
+
[a-zA-Z0-9_.-]+
|
138
178
|
end
|
139
179
|
|
140
180
|
rule config_name
|
141
|
-
[a-zA-Z0-9_
|
181
|
+
[a-zA-Z0-9_.-]+
|
142
182
|
end
|
143
183
|
|
144
184
|
rule name
|
@@ -146,7 +186,7 @@ grammar Fig
|
|
146
186
|
end
|
147
187
|
|
148
188
|
rule url
|
149
|
-
(value:[a-zA-Z0-9
|
189
|
+
(value:[a-zA-Z0-9:/\\._*-]+ ws) / ('"' value:[a-zA-Z0-9:/\\._-]+ '"' ws)
|
150
190
|
end
|
151
191
|
|
152
192
|
rule ws
|
data/lib/fig/options.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
require 'optparse'
|
2
2
|
require 'fig/package'
|
3
|
+
require 'fig/package/archive'
|
4
|
+
require 'fig/package/include'
|
5
|
+
require 'fig/package/path'
|
6
|
+
require 'fig/package/resource'
|
7
|
+
require 'fig/package/set'
|
3
8
|
|
4
9
|
module Fig
|
5
10
|
def parse_descriptor(descriptor)
|
@@ -66,7 +71,7 @@ EOF
|
|
66
71
|
'append (actually, prepend) VAL to environment var VAR, delimited by separator'
|
67
72
|
) do |var_val|
|
68
73
|
var, val = var_val.split('=')
|
69
|
-
options[:modifiers] << Path.new(var, val)
|
74
|
+
options[:modifiers] << Package::Path.new(var, val)
|
70
75
|
end
|
71
76
|
|
72
77
|
options[:archives] = []
|
@@ -74,7 +79,7 @@ EOF
|
|
74
79
|
'--archive FULLPATH',
|
75
80
|
'include FULLPATH archive in package (when using --publish)'
|
76
81
|
) do |path|
|
77
|
-
options[:archives] << Archive.new(path)
|
82
|
+
options[:archives] << Package::Archive.new(path)
|
78
83
|
end
|
79
84
|
|
80
85
|
options[:cleans] = []
|
@@ -127,7 +132,7 @@ EOF
|
|
127
132
|
'include PKG (with any variable prepends) in environment'
|
128
133
|
) do |descriptor|
|
129
134
|
package_name, config_name, version_name = parse_descriptor(descriptor)
|
130
|
-
options[:modifiers] << Include.new(package_name, config_name, version_name, {})
|
135
|
+
options[:modifiers] << Package::Include.new(package_name, config_name, version_name, {})
|
131
136
|
end
|
132
137
|
|
133
138
|
options[:list] = false
|
@@ -179,14 +184,14 @@ EOF
|
|
179
184
|
'--resource FULLPATH',
|
180
185
|
'include FULLPATH resource in package (when using --publish)'
|
181
186
|
) do |path|
|
182
|
-
options[:resources] << Resource.new(path)
|
187
|
+
options[:resources] << Package::Resource.new(path)
|
183
188
|
end
|
184
189
|
|
185
190
|
opts.on(
|
186
191
|
'-s', '--set VAR=VAL', 'set environment variable VAR to VAL'
|
187
192
|
) do |var_val|
|
188
193
|
var, val = var_val.split('=')
|
189
|
-
options[:modifiers] << Set.new(var, val)
|
194
|
+
options[:modifiers] << Package::Set.new(var, val)
|
190
195
|
end
|
191
196
|
|
192
197
|
options[:update] = false
|
data/lib/fig/os.rb
CHANGED
@@ -68,12 +68,22 @@ module Fig
|
|
68
68
|
NOT_MODIFIED = 3
|
69
69
|
NOT_FOUND = 4
|
70
70
|
|
71
|
+
def strip_paths_for_list(ls_output, packages, path)
|
72
|
+
if not ls_output.nil?
|
73
|
+
ls_output = ls_output.gsub(path + '/', '').gsub(path, '').split("\n")
|
74
|
+
ls_output.each do |line|
|
75
|
+
parts = line.gsub(/\\/, '/').sub(/^\.\//, '').sub(/:$/, '').chomp().split('/')
|
76
|
+
packages << parts.join('/') if parts.size == 2
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
71
81
|
def download_list(url)
|
72
82
|
begin
|
73
83
|
uri = URI.parse(url)
|
74
84
|
rescue
|
75
85
|
Logging.fatal %Q<Unable to parse url: "#{url}">
|
76
|
-
raise NetworkError.new
|
86
|
+
raise NetworkError.new(%Q<Unable to parse url: "#{url}">)
|
77
87
|
end
|
78
88
|
case uri.scheme
|
79
89
|
when 'ftp'
|
@@ -88,18 +98,17 @@ module Fig
|
|
88
98
|
packages = []
|
89
99
|
Net::SSH.start(uri.host, uri.user) do |ssh|
|
90
100
|
ls = ssh.exec!("[ -d #{uri.path} ] && find #{uri.path}")
|
91
|
-
|
92
|
-
ls = ls.gsub(uri.path + '/', '').gsub(uri.path, '').split("\n")
|
93
|
-
ls.each do |line|
|
94
|
-
parts = line.gsub(/\\/, '/').sub(/^\.\//, '').sub(/:$/, '').chomp().split('/')
|
95
|
-
packages << parts.join('/') if parts.size == 2
|
96
|
-
end
|
97
|
-
end
|
101
|
+
strip_paths_for_list(ls, packages, uri.path)
|
98
102
|
end
|
99
103
|
packages
|
104
|
+
when 'file'
|
105
|
+
packages = []
|
106
|
+
ls = %x<[ -d #{uri.path} ] && find #{uri.path}>
|
107
|
+
strip_paths_for_list(ls, packages, uri.path)
|
108
|
+
return packages
|
100
109
|
else
|
101
110
|
Logging.fatal "Protocol not supported: #{url}"
|
102
|
-
raise NetworkError.new
|
111
|
+
raise NetworkError.new("Protocol not supported: #{url}")
|
103
112
|
end
|
104
113
|
end
|
105
114
|
|
@@ -170,9 +179,15 @@ module Fig
|
|
170
179
|
cmd = `which fig-download`.strip + " #{timestamp} #{uri.path}"
|
171
180
|
log_download(url, path)
|
172
181
|
ssh_download(uri.user, uri.host, path, cmd)
|
182
|
+
when 'file'
|
183
|
+
begin
|
184
|
+
FileUtils.cp(uri.path, path)
|
185
|
+
rescue Errno::ENOENT => e
|
186
|
+
raise NotFoundError.new
|
187
|
+
end
|
173
188
|
else
|
174
189
|
Logging.fatal "Unknown protocol: #{url}"
|
175
|
-
raise NetworkError.new
|
190
|
+
raise NetworkError.new("Unknown protocol: #{url}")
|
176
191
|
end
|
177
192
|
end
|
178
193
|
|
@@ -197,7 +212,7 @@ module Fig
|
|
197
212
|
unpack_archive(dir, path)
|
198
213
|
else
|
199
214
|
Logging.fatal "Unknown archive type: #{basename}"
|
200
|
-
raise NetworkError.new
|
215
|
+
raise NetworkError.new("Unknown archive type: #{basename}")
|
201
216
|
end
|
202
217
|
end
|
203
218
|
|
@@ -233,6 +248,12 @@ module Fig
|
|
233
248
|
end
|
234
249
|
ftp.putbinaryfile(local_file)
|
235
250
|
end
|
251
|
+
when 'file'
|
252
|
+
FileUtils.mkdir_p(File.dirname(uri.path))
|
253
|
+
FileUtils.cp(local_file, uri.path)
|
254
|
+
else
|
255
|
+
Logging.fatal "Unknown protocol: #{uri}"
|
256
|
+
raise NetworkError.new("Unknown protocol: #{uri}")
|
236
257
|
end
|
237
258
|
end
|
238
259
|
|
@@ -371,7 +392,7 @@ module Fig
|
|
371
392
|
else
|
372
393
|
tempfile.delete
|
373
394
|
Logging.fatal "Unable to download file #{path}: #{return_code}"
|
374
|
-
raise NetworkError.new
|
395
|
+
raise NetworkError.new("Unable to download file #{path}: #{return_code}")
|
375
396
|
end
|
376
397
|
end
|
377
398
|
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'fig/logging'
|
2
|
+
require 'fig/packageerror'
|
3
|
+
require 'fig/package/statement'
|
4
|
+
|
5
|
+
module Fig; end
|
6
|
+
class Fig::Package; end
|
7
|
+
|
8
|
+
class Fig::Package::Archive
|
9
|
+
include Fig::Package::Statement
|
10
|
+
|
11
|
+
attr_reader :url
|
12
|
+
|
13
|
+
def initialize(url)
|
14
|
+
@url = url
|
15
|
+
end
|
16
|
+
|
17
|
+
def urls
|
18
|
+
return [@url]
|
19
|
+
end
|
20
|
+
|
21
|
+
def unparse(indent)
|
22
|
+
%Q<#{indent}archive "#{url}">
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'fig/logging'
|
2
|
+
require 'fig/packageerror'
|
3
|
+
require 'fig/package/statement'
|
4
|
+
|
5
|
+
module Fig; end
|
6
|
+
class Fig::Package; end
|
7
|
+
|
8
|
+
class Fig::Package::Command
|
9
|
+
include Fig::Package::Statement
|
10
|
+
|
11
|
+
attr_reader :command
|
12
|
+
|
13
|
+
def initialize(command)
|
14
|
+
@command = command
|
15
|
+
end
|
16
|
+
|
17
|
+
def unparse(indent)
|
18
|
+
%Q<#{indent}command "#{@command}">
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'fig/logging'
|
2
|
+
require 'fig/packageerror'
|
3
|
+
require 'fig/package/command'
|
4
|
+
require 'fig/package/statement'
|
5
|
+
|
6
|
+
module Fig; end
|
7
|
+
class Fig::Package; end
|
8
|
+
|
9
|
+
class Fig::Package::Configuration
|
10
|
+
include Fig::Package::Statement
|
11
|
+
|
12
|
+
attr_reader :name, :statements
|
13
|
+
|
14
|
+
def initialize(name, statements)
|
15
|
+
@name = name
|
16
|
+
@statements = statements
|
17
|
+
end
|
18
|
+
|
19
|
+
def with_name(name)
|
20
|
+
Configuration.new(name, statements)
|
21
|
+
end
|
22
|
+
|
23
|
+
def commands
|
24
|
+
result = statements.select do
|
25
|
+
|statement| statement.is_a?(Fig::Package::Command)
|
26
|
+
end
|
27
|
+
result
|
28
|
+
end
|
29
|
+
|
30
|
+
def walk_statements(&block)
|
31
|
+
@statements.each do |statement|
|
32
|
+
yield statement
|
33
|
+
statement.walk_statements &block
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def unparse(indent)
|
38
|
+
unparse_statements(indent, "config #{@name}", @statements, 'end')
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'fig/logging'
|
2
|
+
require 'fig/packageerror'
|
3
|
+
require 'fig/package/statement'
|
4
|
+
|
5
|
+
module Fig; end
|
6
|
+
class Fig::Package; end
|
7
|
+
|
8
|
+
class Fig::Package::Include
|
9
|
+
include Fig::Package::Statement
|
10
|
+
|
11
|
+
attr_reader :package_name, :config_name, :version_name, :overrides
|
12
|
+
|
13
|
+
def initialize(package_name, config_name, version_name, overrides)
|
14
|
+
@package_name = package_name
|
15
|
+
@config_name = config_name
|
16
|
+
@version_name = version_name
|
17
|
+
@overrides = overrides
|
18
|
+
end
|
19
|
+
|
20
|
+
def unparse(indent)
|
21
|
+
descriptor = ''
|
22
|
+
descriptor += @package_name if @package_name
|
23
|
+
descriptor += "/#{@version_name}" if @version_name
|
24
|
+
descriptor += ":#{@config_name}" if @config_name
|
25
|
+
@overrides.each do |override|
|
26
|
+
descriptor += override.unparse
|
27
|
+
end
|
28
|
+
return "#{indent}include #{descriptor}"
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'fig/logging'
|
2
|
+
require 'fig/packageerror'
|
3
|
+
require 'fig/package/statement'
|
4
|
+
|
5
|
+
module Fig; end
|
6
|
+
class Fig::Package; end
|
7
|
+
|
8
|
+
class Fig::Package::Install
|
9
|
+
include Fig::Package::Statement
|
10
|
+
|
11
|
+
def initialize(statements)
|
12
|
+
@statements = statements
|
13
|
+
end
|
14
|
+
|
15
|
+
def unparse(indent)
|
16
|
+
prefix = "\n#{indent}install"
|
17
|
+
body = @statements.map { |statement| statement.unparse(indent+' ') }.join("\n")
|
18
|
+
suffix = "#{indent}end"
|
19
|
+
return [prefix, body, suffix].join("\n")
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'fig/logging'
|
2
|
+
require 'fig/packageerror'
|
3
|
+
require 'fig/package/statement'
|
4
|
+
|
5
|
+
module Fig; end
|
6
|
+
class Fig::Package; end
|
7
|
+
|
8
|
+
class Fig::Package::Override
|
9
|
+
include Fig::Package::Statement
|
10
|
+
|
11
|
+
attr_reader :package_name, :version_name
|
12
|
+
|
13
|
+
def initialize(package_name, version_name)
|
14
|
+
@package_name = package_name
|
15
|
+
@version_name = version_name
|
16
|
+
end
|
17
|
+
|
18
|
+
def unparse()
|
19
|
+
return ' override ' + @package_name + '/' + @version_name
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'fig/logging'
|
2
|
+
require 'fig/packageerror'
|
3
|
+
require 'fig/package/statement'
|
4
|
+
|
5
|
+
module Fig; end
|
6
|
+
class Fig::Package; end
|
7
|
+
|
8
|
+
class Fig::Package::Path
|
9
|
+
include Fig::Package::Statement
|
10
|
+
|
11
|
+
attr_reader :name, :value
|
12
|
+
|
13
|
+
def initialize(name, value)
|
14
|
+
@name = name
|
15
|
+
@value = value
|
16
|
+
end
|
17
|
+
|
18
|
+
def unparse(indent)
|
19
|
+
"#{indent}append #{name}=#{value}"
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'fig/logging'
|
2
|
+
require 'fig/packageerror'
|
3
|
+
require 'fig/package/statement'
|
4
|
+
|
5
|
+
module Fig; end
|
6
|
+
class Fig::Package; end
|
7
|
+
|
8
|
+
class Fig::Package::Publish
|
9
|
+
include Fig::Package::Statement
|
10
|
+
|
11
|
+
attr_reader :local_name, :remote_name
|
12
|
+
|
13
|
+
def initialize(local_name, remote_name)
|
14
|
+
@local_name = local_name
|
15
|
+
@remote_name = remote_name
|
16
|
+
end
|
17
|
+
|
18
|
+
def unparse(indent)
|
19
|
+
"#{indent}publish #{@local_name}->#{@remote_name}"
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'fig/logging'
|
2
|
+
require 'fig/packageerror'
|
3
|
+
require 'fig/package/statement'
|
4
|
+
|
5
|
+
module Fig; end
|
6
|
+
class Fig::Package; end
|
7
|
+
|
8
|
+
class Fig::Package::Resource
|
9
|
+
include Fig::Package::Statement
|
10
|
+
|
11
|
+
attr_reader :url
|
12
|
+
|
13
|
+
def initialize(url)
|
14
|
+
@url = url
|
15
|
+
end
|
16
|
+
|
17
|
+
def urls
|
18
|
+
return [@url]
|
19
|
+
end
|
20
|
+
|
21
|
+
def unparse(indent)
|
22
|
+
"#{indent}resource #{url}"
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'fig/logging'
|
2
|
+
require 'fig/packageerror'
|
3
|
+
require 'fig/package/statement'
|
4
|
+
|
5
|
+
module Fig; end
|
6
|
+
class Fig::Package; end
|
7
|
+
|
8
|
+
class Fig::Package::Retrieve
|
9
|
+
include Fig::Package::Statement
|
10
|
+
|
11
|
+
attr_reader :var, :path
|
12
|
+
|
13
|
+
def initialize(var, path)
|
14
|
+
@var = var
|
15
|
+
@path = path
|
16
|
+
end
|
17
|
+
|
18
|
+
def unparse(indent)
|
19
|
+
"#{indent}retrieve #{var}->#{path}"
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'fig/logging'
|
2
|
+
require 'fig/packageerror'
|
3
|
+
require 'fig/package/statement'
|
4
|
+
|
5
|
+
module Fig; end
|
6
|
+
class Fig::Package; end
|
7
|
+
|
8
|
+
class Fig::Package::Set
|
9
|
+
include Fig::Package::Statement
|
10
|
+
|
11
|
+
attr_reader :name, :value
|
12
|
+
|
13
|
+
def initialize(name, value)
|
14
|
+
@name = name
|
15
|
+
@value = value
|
16
|
+
end
|
17
|
+
|
18
|
+
def unparse(indent)
|
19
|
+
"#{indent}set #{name}=#{value}"
|
20
|
+
end
|
21
|
+
end
|