fig 0.1.65 → 0.1.67
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 +29 -0
- data/bin/fig +1 -1
- data/bin/fig-debug +1 -1
- data/lib/fig.rb +3 -0
- data/lib/fig/{applicationconfiguration.rb → application_configuration.rb} +0 -0
- data/lib/fig/{atexit.rb → at_exit.rb} +0 -0
- data/lib/fig/command.rb +190 -200
- data/lib/fig/command/action.rb +83 -0
- data/lib/fig/command/action/clean.rb +33 -0
- data/lib/fig/command/action/get.rb +48 -0
- data/lib/fig/command/action/help.rb +29 -0
- data/lib/fig/command/action/list_configs.rb +39 -0
- data/lib/fig/command/action/list_dependencies.rb +19 -0
- data/lib/fig/command/action/list_dependencies/all_configs.rb +44 -0
- data/lib/fig/command/action/list_dependencies/default.rb +40 -0
- data/lib/fig/command/action/list_dependencies/tree.rb +40 -0
- data/lib/fig/command/action/list_dependencies/tree_all_configs.rb +40 -0
- data/lib/fig/command/action/list_local.rb +29 -0
- data/lib/fig/command/action/list_remote.rb +33 -0
- data/lib/fig/command/action/list_variables.rb +23 -0
- data/lib/fig/command/action/list_variables/all_configs.rb +61 -0
- data/lib/fig/command/action/list_variables/default.rb +48 -0
- data/lib/fig/command/action/list_variables/tree.rb +20 -0
- data/lib/fig/command/action/list_variables/tree_all_configs.rb +20 -0
- data/lib/fig/command/action/publish.rb +52 -0
- data/lib/fig/command/action/publish_local.rb +29 -0
- data/lib/fig/command/action/role/has_no_sub_action.rb +10 -0
- data/lib/fig/command/action/role/has_sub_action.rb +58 -0
- data/lib/fig/command/action/role/list_all_configs.rb +14 -0
- data/lib/fig/command/action/role/list_base_config.rb +14 -0
- data/lib/fig/command/action/role/list_dependencies_flat.rb +22 -0
- data/lib/fig/command/action/role/list_dependencies_in_a_tree.rb +21 -0
- data/lib/fig/command/action/role/list_variables_in_a_tree.rb +150 -0
- data/lib/fig/command/action/role/list_walking_dependency_tree.rb +90 -0
- data/lib/fig/command/action/role/publish.rb +90 -0
- data/lib/fig/command/action/role/update.rb +46 -0
- data/lib/fig/command/action/run_command_line.rb +45 -0
- data/lib/fig/command/action/run_command_statement.rb +52 -0
- data/lib/fig/command/action/update.rb +17 -0
- data/lib/fig/command/action/update_if_missing.rb +17 -0
- data/lib/fig/command/action/version.rb +27 -0
- data/lib/fig/command/{coveragesupport.rb → coverage_support.rb} +0 -0
- data/lib/fig/command/{optionerror.rb → option_error.rb} +1 -1
- data/lib/fig/command/options.rb +185 -127
- data/lib/fig/command/package_applier.rb +140 -0
- data/lib/fig/command/package_loader.rb +124 -0
- data/lib/fig/{configfileerror.rb → config_file_error.rb} +1 -1
- data/lib/fig/{environmentvariables.rb → environment_variables.rb} +0 -0
- data/lib/fig/{environmentvariables/caseinsensitive.rb → environment_variables/case_insensitive.rb} +1 -1
- data/lib/fig/{environmentvariables/casesensitive.rb → environment_variables/case_sensitive.rb} +1 -1
- data/lib/fig/figrc.rb +3 -3
- data/lib/fig/grammar.treetop +1 -1
- data/lib/fig/{backtrace.rb → include_backtrace.rb} +7 -2
- data/lib/fig/log4r/outputter.rb +1 -1
- data/lib/fig/{log4rconfigerror.rb → log4r_config_error.rb} +1 -1
- data/lib/fig/logging.rb +2 -2
- data/lib/fig/{networkerror.rb → network_error.rb} +1 -1
- data/lib/fig/{nosuchpackageconfigerror.rb → no_such_package_config_error.rb} +2 -2
- data/lib/fig/{notfounderror.rb → not_found_error.rb} +0 -0
- data/lib/fig/{operatingsystem.rb → operating_system.rb} +5 -5
- data/lib/fig/package.rb +3 -3
- data/lib/fig/{packagecache.rb → package_cache.rb} +0 -0
- data/lib/fig/{packagedescriptor.rb → package_descriptor.rb} +1 -1
- data/lib/fig/{packagedescriptorparseerror.rb → package_descriptor_parse_error.rb} +1 -1
- data/lib/fig/{packageparseerror.rb → package_parse_error.rb} +1 -1
- data/lib/fig/parser.rb +4 -4
- data/lib/fig/{parserpackagebuildstate.rb → parser_package_build_state.rb} +1 -1
- data/lib/fig/repository.rb +17 -17
- data/lib/fig/{repositoryerror.rb → repository_error.rb} +1 -1
- data/lib/fig/{environment.rb → runtime_environment.rb} +15 -8
- data/lib/fig/statement/include.rb +1 -1
- data/lib/fig/statement/override.rb +1 -1
- data/lib/fig/{urlaccesserror.rb → url_access_error.rb} +1 -1
- data/lib/fig/{userinputerror.rb → user_input_error.rb} +0 -0
- data/lib/fig/{workingdirectorymaintainer.rb → working_directory_maintainer.rb} +4 -4
- data/lib/fig/{workingdirectorymetadata.rb → working_directory_metadata.rb} +0 -0
- metadata +88 -54
- data/VERSION +0 -1
- data/lib/fig/command/listing.rb +0 -363
- data/lib/fig/command/packageload.rb +0 -236
@@ -0,0 +1,140 @@
|
|
1
|
+
require 'fig/package'
|
2
|
+
require 'fig/package_descriptor'
|
3
|
+
|
4
|
+
module Fig; end
|
5
|
+
class Fig::Command; end
|
6
|
+
|
7
|
+
class Fig::Command::PackageApplier
|
8
|
+
def initialize(
|
9
|
+
base_package,
|
10
|
+
environment,
|
11
|
+
options,
|
12
|
+
descriptor,
|
13
|
+
base_config,
|
14
|
+
package_source_description
|
15
|
+
)
|
16
|
+
@base_package = base_package
|
17
|
+
@environment = environment
|
18
|
+
@options = options
|
19
|
+
@descriptor = descriptor
|
20
|
+
@base_config = base_config
|
21
|
+
@package_source_description = package_source_description
|
22
|
+
end
|
23
|
+
|
24
|
+
def activate_retrieves()
|
25
|
+
@base_package.retrieves.each do |statement|
|
26
|
+
@environment.add_retrieve(statement)
|
27
|
+
end
|
28
|
+
|
29
|
+
return
|
30
|
+
end
|
31
|
+
|
32
|
+
def register_package_with_environment()
|
33
|
+
@environment.register_package(@base_package)
|
34
|
+
|
35
|
+
return
|
36
|
+
end
|
37
|
+
|
38
|
+
def apply_config_to_environment(ignore_base_config)
|
39
|
+
begin
|
40
|
+
@environment.apply_config(
|
41
|
+
synthesize_package_for_command_line_options(ignore_base_config),
|
42
|
+
Fig::Package::DEFAULT_CONFIG,
|
43
|
+
nil
|
44
|
+
)
|
45
|
+
rescue Fig::NoSuchPackageConfigError => exception
|
46
|
+
make_no_such_package_exception_descriptive(exception)
|
47
|
+
end
|
48
|
+
|
49
|
+
return
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def config_was_specified_by_user()
|
55
|
+
return ! @options.config().nil? ||
|
56
|
+
@descriptor && ! @descriptor.config().nil?
|
57
|
+
end
|
58
|
+
|
59
|
+
def synthesize_package_for_command_line_options(ignore_base_config)
|
60
|
+
configuration_statements = []
|
61
|
+
|
62
|
+
if not ignore_base_config
|
63
|
+
configuration_statements << Fig::Statement::Include.new(
|
64
|
+
nil,
|
65
|
+
%Q<[synthetic statement created in #{__FILE__} line #{__LINE__}]>,
|
66
|
+
Fig::PackageDescriptor.new(
|
67
|
+
@base_package.name(), @base_package.version(), @base_config
|
68
|
+
),
|
69
|
+
nil
|
70
|
+
)
|
71
|
+
end
|
72
|
+
|
73
|
+
configuration_statements << @options.environment_statements()
|
74
|
+
|
75
|
+
configuration_statement =
|
76
|
+
Fig::Statement::Configuration.new(
|
77
|
+
nil,
|
78
|
+
%Q<[synthetic statement created in #{__FILE__} line #{__LINE__}]>,
|
79
|
+
Fig::Package::DEFAULT_CONFIG,
|
80
|
+
configuration_statements.flatten()
|
81
|
+
)
|
82
|
+
|
83
|
+
return Fig::Package.new(nil, nil, '.', [configuration_statement])
|
84
|
+
end
|
85
|
+
|
86
|
+
def make_no_such_package_exception_descriptive(exception)
|
87
|
+
if not @descriptor
|
88
|
+
make_no_such_package_exception_descriptive_without_descriptor(exception)
|
89
|
+
end
|
90
|
+
|
91
|
+
check_no_such_package_exception_is_for_command_line_package(exception)
|
92
|
+
source = derive_exception_source()
|
93
|
+
|
94
|
+
message = %Q<There's no "#{@base_config}" config#{source}.>
|
95
|
+
message += %q< Specify one that does like this: ">
|
96
|
+
message +=
|
97
|
+
Fig::PackageDescriptor.format(@descriptor.name, @descriptor.version, 'some_existing_config')
|
98
|
+
message += %q<".>
|
99
|
+
|
100
|
+
raise Fig::UserInputError.new(message)
|
101
|
+
end
|
102
|
+
|
103
|
+
def make_no_such_package_exception_descriptive_without_descriptor(exception)
|
104
|
+
raise exception if config_was_specified_by_user()
|
105
|
+
raise exception if not exception.descriptor.nil?
|
106
|
+
|
107
|
+
source = derive_exception_source()
|
108
|
+
message =
|
109
|
+
%Q<No config was specified and there's no "#{Fig::Package::DEFAULT_CONFIG}" config#{source}.>
|
110
|
+
config_names = @base_package.config_names()
|
111
|
+
if config_names.size > 1
|
112
|
+
message +=
|
113
|
+
%Q< The valid configs are "#{config_names.join('", "')}".>
|
114
|
+
elsif config_names.size == 1
|
115
|
+
message += %Q< The only config is "#{config_names[0]}".>
|
116
|
+
else
|
117
|
+
message += ' Actually, there are no configs.'
|
118
|
+
end
|
119
|
+
|
120
|
+
raise Fig::UserInputError.new(message)
|
121
|
+
end
|
122
|
+
|
123
|
+
def check_no_such_package_exception_is_for_command_line_package(exception)
|
124
|
+
descriptor = exception.descriptor
|
125
|
+
|
126
|
+
raise exception if
|
127
|
+
descriptor.name && descriptor.name != @descriptor.name
|
128
|
+
raise exception if
|
129
|
+
descriptor.version && descriptor.version != @descriptor.version
|
130
|
+
raise exception if descriptor.config != @base_config
|
131
|
+
|
132
|
+
return
|
133
|
+
end
|
134
|
+
|
135
|
+
def derive_exception_source()
|
136
|
+
source = @package_source_description
|
137
|
+
|
138
|
+
return source ? %Q< in #{source}> : ''
|
139
|
+
end
|
140
|
+
end
|
@@ -0,0 +1,124 @@
|
|
1
|
+
require 'fig/package_descriptor'
|
2
|
+
require 'fig/parser'
|
3
|
+
|
4
|
+
module Fig; end
|
5
|
+
class Fig::Command; end
|
6
|
+
|
7
|
+
class Fig::Command::PackageLoader
|
8
|
+
DEFAULT_FIG_FILE = 'package.fig'
|
9
|
+
|
10
|
+
def initialize(
|
11
|
+
application_configuration,
|
12
|
+
descriptor,
|
13
|
+
package_definition_file,
|
14
|
+
base_config,
|
15
|
+
repository
|
16
|
+
)
|
17
|
+
@application_configuration = application_configuration
|
18
|
+
@descriptor = descriptor
|
19
|
+
@package_definition_file = package_definition_file
|
20
|
+
@base_config = base_config
|
21
|
+
@repository = repository
|
22
|
+
end
|
23
|
+
|
24
|
+
def load_package_object_from_file()
|
25
|
+
definition_text = load_package_definition_file_contents()
|
26
|
+
|
27
|
+
parse_package_definition_file(definition_text)
|
28
|
+
|
29
|
+
return @base_package
|
30
|
+
end
|
31
|
+
|
32
|
+
def load_package_object()
|
33
|
+
if @descriptor.nil?
|
34
|
+
load_package_object_from_file()
|
35
|
+
else
|
36
|
+
@base_package = @repository.get_package(@descriptor)
|
37
|
+
end
|
38
|
+
|
39
|
+
return @base_package
|
40
|
+
end
|
41
|
+
|
42
|
+
def package_source_description()
|
43
|
+
if @package_loaded_from_path
|
44
|
+
return @package_loaded_from_path
|
45
|
+
elsif @descriptor
|
46
|
+
return
|
47
|
+
Fig::PackageDescriptor.format(@descriptor.name, @descriptor.version, nil)
|
48
|
+
end
|
49
|
+
|
50
|
+
return nil
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def load_package_definition_file_contents()
|
56
|
+
if @package_definition_file == :none
|
57
|
+
return nil
|
58
|
+
elsif @package_definition_file == '-'
|
59
|
+
@package_loaded_from_path = '<standard input>'
|
60
|
+
|
61
|
+
return $stdin.read
|
62
|
+
elsif @package_definition_file.nil?
|
63
|
+
if File.exist?(DEFAULT_FIG_FILE)
|
64
|
+
@package_loaded_from_path = DEFAULT_FIG_FILE
|
65
|
+
|
66
|
+
return File.read(DEFAULT_FIG_FILE)
|
67
|
+
end
|
68
|
+
else
|
69
|
+
return read_in_package_definition_file(@package_definition_file)
|
70
|
+
end
|
71
|
+
|
72
|
+
return
|
73
|
+
end
|
74
|
+
|
75
|
+
def read_in_package_definition_file(config_file)
|
76
|
+
if File.exist?(config_file)
|
77
|
+
@package_loaded_from_path = config_file
|
78
|
+
|
79
|
+
return File.read(config_file)
|
80
|
+
else
|
81
|
+
raise Fig::UserInputError.new(%Q<File "#{config_file}" does not exist.>)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def parse_package_definition_file(definition_text)
|
86
|
+
if definition_text.nil?
|
87
|
+
# This package gets a free ride in terms of requiring a base config; we
|
88
|
+
# synthesize it.
|
89
|
+
set_base_package_to_empty_synthetic_one()
|
90
|
+
return
|
91
|
+
end
|
92
|
+
|
93
|
+
source_description = package_source_description()
|
94
|
+
@base_package =
|
95
|
+
Fig::Parser.new(@application_configuration, :check_include_versions).parse_package(
|
96
|
+
Fig::PackageDescriptor.new(
|
97
|
+
nil, nil, nil, :source_description => source_description
|
98
|
+
),
|
99
|
+
'.',
|
100
|
+
source_description,
|
101
|
+
definition_text
|
102
|
+
)
|
103
|
+
|
104
|
+
return
|
105
|
+
end
|
106
|
+
|
107
|
+
def set_base_package_to_empty_synthetic_one()
|
108
|
+
@base_package = Fig::Package.new(
|
109
|
+
nil,
|
110
|
+
nil,
|
111
|
+
'.',
|
112
|
+
[
|
113
|
+
Fig::Statement::Configuration.new(
|
114
|
+
nil,
|
115
|
+
%Q<[synthetic statement created in #{__FILE__} line #{__LINE__}]>,
|
116
|
+
@base_config,
|
117
|
+
[]
|
118
|
+
)
|
119
|
+
]
|
120
|
+
)
|
121
|
+
|
122
|
+
return
|
123
|
+
end
|
124
|
+
end
|
File without changes
|
data/lib/fig/figrc.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'json'
|
2
2
|
|
3
|
-
require 'fig/
|
4
|
-
require 'fig/
|
5
|
-
require 'fig/
|
3
|
+
require 'fig/application_configuration'
|
4
|
+
require 'fig/config_file_error'
|
5
|
+
require 'fig/operating_system'
|
6
6
|
require 'fig/repository'
|
7
7
|
|
8
8
|
module Fig; end
|
data/lib/fig/grammar.treetop
CHANGED
@@ -1,9 +1,14 @@
|
|
1
|
-
require 'fig/
|
1
|
+
require 'fig/repository_error'
|
2
2
|
|
3
3
|
module Fig; end
|
4
4
|
|
5
|
+
# Stack of applied "include" statements.
|
6
|
+
#
|
5
7
|
# Keeps track of overrides and can produce package definition stack traces.
|
6
|
-
|
8
|
+
#
|
9
|
+
# Pushing and popping actually happens via instances being held/let go by
|
10
|
+
# recursive method calls on RuntimeEnvironment.
|
11
|
+
class Fig::IncludeBacktrace
|
7
12
|
attr_reader :overrides
|
8
13
|
|
9
14
|
def initialize(parent, descriptor)
|
data/lib/fig/log4r/outputter.rb
CHANGED
data/lib/fig/logging.rb
CHANGED
@@ -2,8 +2,8 @@ require 'log4r'
|
|
2
2
|
require 'log4r/configurator'
|
3
3
|
require 'log4r/yamlconfigurator'
|
4
4
|
|
5
|
-
require 'fig/
|
6
|
-
require 'fig/
|
5
|
+
require 'fig/config_file_error'
|
6
|
+
require 'fig/log4r_config_error'
|
7
7
|
require 'fig/log4r/outputter'
|
8
8
|
|
9
9
|
module Fig; end
|
File without changes
|
@@ -13,12 +13,12 @@ require 'uri'
|
|
13
13
|
|
14
14
|
require 'highline/import'
|
15
15
|
|
16
|
-
require 'fig/
|
17
|
-
require 'fig/
|
18
|
-
require 'fig/
|
16
|
+
require 'fig/at_exit'
|
17
|
+
require 'fig/environment_variables/case_insensitive'
|
18
|
+
require 'fig/environment_variables/case_sensitive'
|
19
19
|
require 'fig/logging'
|
20
|
-
require 'fig/
|
21
|
-
require 'fig/
|
20
|
+
require 'fig/network_error'
|
21
|
+
require 'fig/not_found_error'
|
22
22
|
|
23
23
|
module Fig; end
|
24
24
|
|
data/lib/fig/package.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'fig/logging'
|
2
|
-
require 'fig/
|
3
|
-
require 'fig/
|
2
|
+
require 'fig/no_such_package_config_error'
|
3
|
+
require 'fig/package_descriptor'
|
4
4
|
require 'fig/statement/archive'
|
5
5
|
require 'fig/statement/configuration'
|
6
6
|
require 'fig/statement/resource'
|
@@ -124,7 +124,7 @@ class Fig::Package
|
|
124
124
|
end
|
125
125
|
|
126
126
|
def to_s
|
127
|
-
name = @name ||
|
127
|
+
name = @name || UNPUBLISHED
|
128
128
|
version = @version || '<empty>'
|
129
129
|
return Fig::PackageDescriptor.format(name, version, nil)
|
130
130
|
end
|
File without changes
|
data/lib/fig/parser.rb
CHANGED
@@ -2,12 +2,12 @@ require 'treetop'
|
|
2
2
|
|
3
3
|
require 'fig/grammar' # this is grammar.treetop, not grammar.rb.
|
4
4
|
require 'fig/logging'
|
5
|
-
require 'fig/
|
6
|
-
require 'fig/
|
5
|
+
require 'fig/package_parse_error'
|
6
|
+
require 'fig/parser_package_build_state'
|
7
7
|
require 'fig/repository'
|
8
8
|
require 'fig/statement'
|
9
|
-
require 'fig/
|
10
|
-
require 'fig/
|
9
|
+
require 'fig/url_access_error'
|
10
|
+
require 'fig/user_input_error'
|
11
11
|
|
12
12
|
module Fig; end
|
13
13
|
|