lono 7.3.2 → 7.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/lono.rb +1 -0
- data/lib/lono/app_file/build.rb +22 -34
- data/lib/lono/app_file/build/lambda_layer/ruby_packager.rb +2 -33
- data/lib/lono/app_file/registry/item.rb +18 -45
- data/lib/lono/app_file/upload.rb +1 -25
- data/lib/lono/cfn/base.rb +8 -2
- data/lib/lono/cfn/create.rb +3 -2
- data/lib/lono/cfn/opts.rb +8 -0
- data/lib/lono/cfn/preview/changeset.rb +1 -0
- data/lib/lono/cfn/update.rb +1 -0
- data/lib/lono/configset.rb +1 -1
- data/lib/lono/configset/combiner.rb +40 -13
- data/lib/lono/configset/generator.rb +6 -1
- data/lib/lono/configset/list.rb +1 -1
- data/lib/lono/configset/register/dsl.rb +3 -3
- data/lib/lono/configset/resolver.rb +9 -5
- data/lib/lono/configset/s3_file/build.rb +33 -0
- data/lib/lono/configset/s3_file/item.rb +30 -0
- data/lib/lono/configset/s3_file/registry.rb +12 -0
- data/lib/lono/configset/s3_file/upload.rb +12 -0
- data/lib/lono/configset/strategy/base.rb +21 -1
- data/lib/lono/configset/strategy/dsl.rb +9 -6
- data/lib/lono/configset/strategy/erb.rb +6 -1
- data/lib/lono/configset/strategy/helpers/dsl.rb +8 -0
- data/lib/lono/configset/strategy/helpers/dsl/auth.rb +37 -0
- data/lib/lono/configset/strategy/{dsl/helpers → helpers/dsl}/core.rb +6 -1
- data/lib/lono/configset/strategy/helpers/dsl/package.rb +40 -0
- data/lib/lono/configset/strategy/helpers/dsl/syntax.rb +74 -0
- data/lib/lono/configset/strategy/{erb/helpers.rb → helpers/erb.rb} +2 -2
- data/lib/lono/extension/list.rb +2 -1
- data/lib/lono/extensions/loader.rb +2 -1
- data/lib/lono/file_uploader.rb +3 -109
- data/lib/lono/finder/base.rb +1 -1
- data/lib/lono/finder/blueprint/configset.rb +3 -3
- data/lib/lono/generate.rb +11 -1
- data/lib/lono/jade/registry.rb +10 -1
- data/lib/lono/jadespec.rb +4 -2
- data/lib/lono/registration/temp.rb +4 -2
- data/lib/lono/s3/uploader.rb +94 -0
- data/lib/lono/seed/base.rb +2 -1
- data/lib/lono/template/configset_injector.rb +6 -4
- data/lib/lono/template/generator.rb +1 -9
- data/lib/lono/template/helper.rb +2 -3
- data/lib/lono/template/post_processor.rb +9 -1
- data/lib/lono/template/strategy/dsl/builder/helpers.rb +1 -0
- data/lib/lono/template/strategy/dsl/builder/helpers/ec2_helper.rb +27 -0
- data/lib/lono/template/strategy/dsl/builder/helpers/s3_helper.rb +1 -0
- data/lib/lono/template/upload.rb +4 -98
- data/lib/lono/utils/item/file_methods.rb +29 -0
- data/lib/lono/utils/item/zip.rb +42 -0
- data/lib/lono/utils/rsync.rb +36 -0
- data/lib/lono/version.rb +1 -1
- data/lib/templates/blueprint/.gitignore +4 -7
- data/lib/templates/configset/%configset_name%.gemspec.tt +1 -1
- data/lib/templates/configset/.gitignore +2 -4
- data/lib/templates/extension/%extension_name%.gemspec.tt +2 -1
- data/lib/templates/extension/.gitignore +11 -17
- data/lib/templates/extension/lib/%extension_name%.rb.tt +3 -0
- data/lib/templates/extension/lib/%extension_name%/autoloader.rb.tt +23 -0
- data/lono.gemspec +1 -0
- metadata +32 -6
- data/lib/lono/configset/strategy/dsl/helpers.rb +0 -5
- data/lib/lono/configset/strategy/dsl/syntax.rb +0 -32
@@ -10,8 +10,9 @@ class Lono::Extensions
|
|
10
10
|
|
11
11
|
def load_extension_helpers(registry)
|
12
12
|
root = find_extensions_root_path(registry)
|
13
|
+
extension_file = "#{root}/lib/#{registry.name}"
|
14
|
+
require extension_file
|
13
15
|
helpers_path = "#{root}/lib/#{registry.name}/helpers"
|
14
|
-
|
15
16
|
load_files(helpers_path)
|
16
17
|
end
|
17
18
|
|
data/lib/lono/file_uploader.rb
CHANGED
@@ -1,127 +1,21 @@
|
|
1
1
|
module Lono
|
2
2
|
class FileUploader < AbstractBase
|
3
|
-
include Lono::Template::AwsService
|
4
3
|
extend Memoist
|
5
4
|
|
6
5
|
def initialize(options={})
|
7
6
|
super
|
8
7
|
@checksums = {}
|
9
|
-
@prefix = "#{
|
8
|
+
@prefix = "#{Lono.env}/#{blueprint}/files" # s3://s3-bucket/folder/development/files
|
10
9
|
end
|
11
10
|
|
12
11
|
def upload_all
|
13
|
-
|
14
|
-
# size = Dir.glob(pattern).size
|
15
|
-
# puts "size #{size}"
|
16
|
-
# return unless Dir.glob(pattern).size > 0
|
17
|
-
# puts "Uploading app/files2..."
|
12
|
+
puts "Uploading app/files.."
|
18
13
|
load_checksums!
|
19
14
|
|
20
15
|
Dir.glob(pattern).each do |path|
|
21
16
|
next if ::File.directory?(path)
|
22
|
-
|
17
|
+
Lono::S3::Uploader.new(path).upload
|
23
18
|
end
|
24
19
|
end
|
25
|
-
|
26
|
-
def load_checksums!
|
27
|
-
resp = s3.list_objects(bucket: s3_bucket, prefix: @prefix)
|
28
|
-
resp.contents.each do |object|
|
29
|
-
# key does not include the bucket name
|
30
|
-
# full path = s3://my-bucket/s3_folder/files/production/my-template.yml
|
31
|
-
# key = s3_folder/files/production/my-template.yml
|
32
|
-
# etag is the checksum as long as the file is not a multi-part file upload
|
33
|
-
# it has extra double quotes wrapped around it.
|
34
|
-
# etag = "\"9cb437490cee2cc96101baf326e5ca81\""
|
35
|
-
@checksums[object.key] = strip_surrounding_quotes(object.etag)
|
36
|
-
end
|
37
|
-
@checksums
|
38
|
-
end
|
39
|
-
|
40
|
-
# used for file_s3_key helper
|
41
|
-
def md5(path)
|
42
|
-
Digest::MD5.file(path).to_s[0..7]
|
43
|
-
end
|
44
|
-
memoize :md5
|
45
|
-
|
46
|
-
def md5_key(path)
|
47
|
-
pretty_path = path.sub(/^\.\//, '')
|
48
|
-
key = "#{@prefix}/#{pretty_path.sub(%r{app/files/},'')}"
|
49
|
-
# add the short md5sum to the file
|
50
|
-
key = key.sub(/\.(\w+)$/,'') # strip extension
|
51
|
-
ext = $1
|
52
|
-
md5 = md5(path)
|
53
|
-
"#{key}-#{md5}.#{ext}"
|
54
|
-
end
|
55
|
-
|
56
|
-
# Inputs:
|
57
|
-
#
|
58
|
-
# path: can be full path or relative path
|
59
|
-
#
|
60
|
-
def s3_upload(path)
|
61
|
-
path = path.gsub("#{Lono.root}/",'') # remove Lono.root
|
62
|
-
pretty_path = path.sub(/^\.\//, '')
|
63
|
-
key = md5_key(path)
|
64
|
-
s3_full_path = "s3://#{s3_bucket}/#{key}"
|
65
|
-
|
66
|
-
local_checksum = Digest::MD5.hexdigest(IO.read(path))
|
67
|
-
remote_checksum = remote_checksum(key)
|
68
|
-
if local_checksum == remote_checksum
|
69
|
-
puts("Not modified: #{pretty_path} to #{s3_full_path}".color(:yellow)) unless @options[:noop]
|
70
|
-
return # do not upload unless the checksum has changed
|
71
|
-
else
|
72
|
-
# Example output:
|
73
|
-
# Uploaded: app/files/docker.yml to s3://boltops-dev/s3_folder/templates/development/docker.yml
|
74
|
-
# Uploaded: app/files/ecs/private.yml to s3://boltops-dev/s3_folder/templates/development/ecs/private.yml
|
75
|
-
message = "Uploading: #{pretty_path} to #{s3_full_path}".color(:green)
|
76
|
-
message = "NOOP: #{message}" if @options[:noop]
|
77
|
-
puts message
|
78
|
-
end
|
79
|
-
|
80
|
-
resp = s3.put_object(
|
81
|
-
body: IO.read(path),
|
82
|
-
bucket: s3_bucket,
|
83
|
-
key: key,
|
84
|
-
storage_class: "REDUCED_REDUNDANCY"
|
85
|
-
) unless @options[:noop]
|
86
|
-
end
|
87
|
-
|
88
|
-
# key example: cloudformation/production/files/lifecycle-0719ab81.zip
|
89
|
-
# s3 path: s3://boltops-dev/cloudformation/production/files/lifecycle-0719ab81.zip
|
90
|
-
# s3_folder: s3://boltops-dev/cloudformation
|
91
|
-
def remote_checksum(key)
|
92
|
-
@checksums[key]
|
93
|
-
end
|
94
|
-
|
95
|
-
def s3_bucket
|
96
|
-
s3_folder.sub('s3://','').split('/').first
|
97
|
-
end
|
98
|
-
|
99
|
-
def s3_folder
|
100
|
-
setting = Lono::Setting.new
|
101
|
-
setting.s3_folder
|
102
|
-
end
|
103
|
-
|
104
|
-
# The folder_key is the s3_folder setting with the s3 bucket.
|
105
|
-
#
|
106
|
-
# Example:
|
107
|
-
# s3_bucket('s3://mybucket/files/storage/path')
|
108
|
-
# => files/storage/path
|
109
|
-
def folder_key
|
110
|
-
return nil if @options[:noop] # to get spec passing
|
111
|
-
return nil unless s3_folder
|
112
|
-
s3_folder.sub('s3://','').split('/')[1..-1].join('/')
|
113
|
-
end
|
114
|
-
|
115
|
-
def strip_surrounding_quotes(string)
|
116
|
-
string.sub(/^"/,'').sub(/"$/,'')
|
117
|
-
end
|
118
|
-
|
119
|
-
def s3_resource
|
120
|
-
@s3_resource ||= Aws::S3::Resource.new
|
121
|
-
end
|
122
|
-
|
123
|
-
def s3
|
124
|
-
@s3 ||= Aws::S3::Client.new
|
125
|
-
end
|
126
20
|
end
|
127
21
|
end
|
data/lib/lono/finder/base.rb
CHANGED
@@ -79,7 +79,7 @@ module Lono::Finder
|
|
79
79
|
|
80
80
|
components = find_all.sort_by { |jadespec| jadespec.name }
|
81
81
|
components.each do |jadespec|
|
82
|
-
pretty_path = jadespec.root.sub("#{Lono.root}/", "")
|
82
|
+
pretty_path = jadespec.root.sub("#{Lono.root}/", "").sub(ENV['HOME'], "~")
|
83
83
|
unless options[:filter_materialized] && jadespec.source_type == "materialized"
|
84
84
|
table.rows << [jadespec.name, pretty_path, jadespec.source_type]
|
85
85
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
class Lono::Finder::Blueprint
|
2
2
|
class Configset < Lono::Finder::Configset
|
3
3
|
def initialize(options={})
|
4
|
-
super
|
4
|
+
super(**options) # **options to remove: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
|
5
5
|
@blueprint_root = options[:blueprint_root] || Lono.blueprint_root
|
6
6
|
end
|
7
7
|
|
8
8
|
def local
|
9
|
-
|
9
|
+
project + vendor + blueprint_app + gems
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
12
|
+
def blueprint_app
|
13
13
|
roots = path_roots("#{@blueprint_root}/app/#{type.pluralize}")
|
14
14
|
components(roots, "blueprint")
|
15
15
|
end
|
data/lib/lono/generate.rb
CHANGED
@@ -23,6 +23,7 @@ module Lono
|
|
23
23
|
def post_generate
|
24
24
|
return if @options[:noop]
|
25
25
|
return if @options[:source]
|
26
|
+
|
26
27
|
build_files # builds app/files to output/BLUEPRINT/files
|
27
28
|
post_process_template
|
28
29
|
upload_files
|
@@ -51,10 +52,18 @@ module Lono
|
|
51
52
|
|
52
53
|
def build_files
|
53
54
|
Lono::AppFile::Build.new(@options).run
|
55
|
+
Lono::Configset::S3File::Build.new(@options).run # copies files to the output folder
|
54
56
|
end
|
55
57
|
|
56
58
|
def generate_templates
|
57
|
-
Lono::Template::Generator.new(@options).run
|
59
|
+
Lono::Template::Generator.new(@options).run # write templates to disk
|
60
|
+
inject_configsets
|
61
|
+
end
|
62
|
+
|
63
|
+
def inject_configsets
|
64
|
+
# The inject_configsets reads it back from disk. Leaving as-is instead of reading all in memory in case there's a reason.
|
65
|
+
Lono::Configset::Preparer.new(@options).run # register and materialize gems
|
66
|
+
Lono::Template::ConfigsetInjector.new(@options).run
|
58
67
|
end
|
59
68
|
|
60
69
|
def post_process_template
|
@@ -71,6 +80,7 @@ module Lono
|
|
71
80
|
|
72
81
|
def upload_files
|
73
82
|
Lono::AppFile::Upload.new(@options).upload
|
83
|
+
Lono::Configset::S3File::Upload.new(@options).upload
|
74
84
|
end
|
75
85
|
|
76
86
|
def check_for_errors
|
data/lib/lono/jade/registry.rb
CHANGED
@@ -40,11 +40,20 @@ class Lono::Jade
|
|
40
40
|
class << self
|
41
41
|
def register_configset(args, options)
|
42
42
|
registry = new(args, options)
|
43
|
-
|
43
|
+
jade_type = determine_jade_type(caller)
|
44
|
+
jade = Lono::Jade.new(registry.name, jade_type, registry)
|
44
45
|
self.tracked_configsets << jade
|
45
46
|
registry
|
46
47
|
end
|
47
48
|
|
49
|
+
def determine_jade_type(caller)
|
50
|
+
if caller.detect { |l| l =~ %r{config/configsets.rb} }
|
51
|
+
'blueprint/configset'
|
52
|
+
else
|
53
|
+
'configset'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
48
57
|
def register_extension(args, options)
|
49
58
|
registry = new(args, options)
|
50
59
|
self.tracked_extensions << registry
|
data/lib/lono/jadespec.rb
CHANGED
@@ -4,14 +4,16 @@ module Lono
|
|
4
4
|
class Jadespec
|
5
5
|
extend Memoist
|
6
6
|
|
7
|
-
delegate :name, to: :gemspec
|
8
|
-
|
9
7
|
attr_accessor :from
|
10
8
|
attr_reader :root, :source_type
|
11
9
|
def initialize(root, source_type)
|
12
10
|
@root, @source_type = root, source_type
|
13
11
|
end
|
14
12
|
|
13
|
+
def name
|
14
|
+
exist? ? gemspec.name : "not gemspec file found for @root: #{@root}"
|
15
|
+
end
|
16
|
+
|
15
17
|
def exist?
|
16
18
|
!!gemspec_file
|
17
19
|
end
|
@@ -29,8 +29,10 @@ class Lono::Registration
|
|
29
29
|
end
|
30
30
|
|
31
31
|
puts <<~EOL
|
32
|
-
Lono is not registered.
|
33
|
-
info in .lono/registration.yml.
|
32
|
+
Lono is not registered. This prompt appears every 24 hours when lono is not registered.
|
33
|
+
To remove this prompt, please set up your registration info in .lono/registration.yml.
|
34
|
+
|
35
|
+
Registration is free. You can register at:
|
34
36
|
|
35
37
|
https://register.lono.cloud
|
36
38
|
|
@@ -0,0 +1,94 @@
|
|
1
|
+
class Lono::S3
|
2
|
+
class Uploader
|
3
|
+
include Lono::AwsServices
|
4
|
+
extend Memoist
|
5
|
+
|
6
|
+
attr_reader :path
|
7
|
+
def initialize(path, options={})
|
8
|
+
@path, @options = path, options
|
9
|
+
@checksums = {}
|
10
|
+
end
|
11
|
+
|
12
|
+
# Inputs:
|
13
|
+
#
|
14
|
+
# path: can be full path or relative path
|
15
|
+
#
|
16
|
+
def upload
|
17
|
+
return if @options[:noop] || ENV['LONO_TEST'] == '1'
|
18
|
+
|
19
|
+
path = @path.gsub("#{Lono.root}/",'') # remove Lono.root
|
20
|
+
key = "#{Lono.env}/#{path}"
|
21
|
+
|
22
|
+
pretty_path = path.sub(/^\.\//, '')
|
23
|
+
s3_full_path = "s3://#{s3_bucket}/#{key}"
|
24
|
+
|
25
|
+
local_checksum = Digest::MD5.hexdigest(IO.read(path))
|
26
|
+
remote_checksum = remote_checksum(key)
|
27
|
+
if local_checksum == remote_checksum
|
28
|
+
puts("Not modified: #{pretty_path} to #{s3_full_path}".color(:yellow)) unless @options[:noop]
|
29
|
+
return # do not upload unless the checksum has changed
|
30
|
+
else
|
31
|
+
# Example output:
|
32
|
+
# Uploaded: app/files/docker.yml to s3://boltops-dev/s3_folder/templates/development/docker.yml
|
33
|
+
# Uploaded: app/files/ecs/private.yml to s3://boltops-dev/s3_folder/templates/development/ecs/private.yml
|
34
|
+
message = "Uploading: #{pretty_path} to #{s3_full_path}".color(:green)
|
35
|
+
message = "NOOP: #{message}" if @options[:noop]
|
36
|
+
puts message
|
37
|
+
end
|
38
|
+
|
39
|
+
s3.put_object(
|
40
|
+
body: IO.read(path),
|
41
|
+
bucket: s3_bucket,
|
42
|
+
key: key,
|
43
|
+
) unless @options[:noop]
|
44
|
+
end
|
45
|
+
|
46
|
+
# https://s3.amazonaws.com/mybucket/development/output/blueprint/templates/blueprint.yml
|
47
|
+
def https_url
|
48
|
+
key = "#{Lono.env}/#{@path}"
|
49
|
+
"https://s3.amazonaws.com/#{s3_bucket}/#{key}"
|
50
|
+
end
|
51
|
+
|
52
|
+
def presigned_url
|
53
|
+
key = "#{Lono.env}/#{@path}"
|
54
|
+
s3_presigner.presigned_url(:get_object, bucket: s3_bucket, key: key)
|
55
|
+
end
|
56
|
+
|
57
|
+
# used for file_s3_key helper
|
58
|
+
def md5(path)
|
59
|
+
Digest::MD5.file(path).to_s[0..7]
|
60
|
+
end
|
61
|
+
memoize :md5
|
62
|
+
|
63
|
+
def load_checksums!(prefix)
|
64
|
+
resp = s3.list_objects(bucket: s3_bucket, prefix: prefix)
|
65
|
+
resp.contents.each do |object|
|
66
|
+
# key does not include the bucket name
|
67
|
+
# full path = s3://my-bucket/s3_folder/files/production/my-template.yml
|
68
|
+
# key = s3_folder/files/production/my-template.yml
|
69
|
+
# etag is the checksum as long as the file is not a multi-part file upload
|
70
|
+
# it has extra double quotes wrapped around it.
|
71
|
+
# etag = "\"9cb437490cee2cc96101baf326e5ca81\""
|
72
|
+
@checksums[object.key] = strip_surrounding_quotes(object.etag)
|
73
|
+
end
|
74
|
+
@checksums
|
75
|
+
end
|
76
|
+
memoize :load_checksums!
|
77
|
+
|
78
|
+
# key example: cloudformation/production/files/lifecycle-0719ab81.zip
|
79
|
+
# s3 path: s3://boltops-dev/cloudformation/production/files/lifecycle-0719ab81.zip
|
80
|
+
# s3_folder: s3://boltops-dev/cloudformation
|
81
|
+
def remote_checksum(key)
|
82
|
+
load_checksums!(key)
|
83
|
+
@checksums[key]
|
84
|
+
end
|
85
|
+
|
86
|
+
def strip_surrounding_quotes(string)
|
87
|
+
string.sub(/^"/,'').sub(/"$/,'')
|
88
|
+
end
|
89
|
+
|
90
|
+
def s3_bucket
|
91
|
+
Lono::S3::Bucket.name
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
data/lib/lono/seed/base.rb
CHANGED
@@ -57,7 +57,8 @@ class Lono::Seed
|
|
57
57
|
@output_template.parameter_groups.each do |label, parameters|
|
58
58
|
lines << "# Parameter Group: #{label}"
|
59
59
|
parameters.each do |name|
|
60
|
-
|
60
|
+
parameter_line = parameter_line(name)
|
61
|
+
lines << parameter_line unless lines.include?(parameter_line)
|
61
62
|
shown << name
|
62
63
|
end
|
63
64
|
lines << ""
|
@@ -20,10 +20,12 @@ class Lono::Template
|
|
20
20
|
next
|
21
21
|
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
#
|
26
|
-
metdata["AWS::CloudFormation::Init"]
|
23
|
+
resource["Metadata"] ||= metadata_configset["Metadata"]
|
24
|
+
|
25
|
+
# metdata = resource["Metadata"] ||= {}
|
26
|
+
# metdata["AWS::CloudFormation::Init"] ||= {}
|
27
|
+
# # The metadata_configset has been combined with the original AWS::CloudFormation::Init if it exists
|
28
|
+
# metdata["AWS::CloudFormation::Init"] = metadata_configset["AWS::CloudFormation::Init"]
|
27
29
|
end
|
28
30
|
|
29
31
|
@cfn
|
@@ -8,10 +8,7 @@ class Lono::Template
|
|
8
8
|
# Dsl.new(options).run
|
9
9
|
generator_class = "Lono::Template::Strategy::#{lono_strategy.camelize}"
|
10
10
|
generator_class = Object.const_get(generator_class)
|
11
|
-
generator_class.new(@options).run
|
12
|
-
# The generator strategy class writes template to disk. The inject_configsets reads it back from disk.
|
13
|
-
# Leaving as-is instead of reading all in memory in case there's a reason.
|
14
|
-
inject_configsets
|
11
|
+
generator_class.new(@options).run # The generator strategy classes write templates to disk
|
15
12
|
end
|
16
13
|
|
17
14
|
def lono_strategy
|
@@ -22,10 +19,5 @@ class Lono::Template
|
|
22
19
|
jadespec.lono_strategy
|
23
20
|
end
|
24
21
|
end
|
25
|
-
|
26
|
-
def inject_configsets
|
27
|
-
Lono::Configset::Preparer.new(@options).run # register and materialize gems
|
28
|
-
ConfigsetInjector.new(@options).run
|
29
|
-
end
|
30
22
|
end
|
31
23
|
end
|
data/lib/lono/template/helper.rb
CHANGED
@@ -8,10 +8,9 @@ require "aws-sdk-core"
|
|
8
8
|
# Lono::Template::Context.new(blueprint, @options)
|
9
9
|
module Lono::Template::Helper
|
10
10
|
def template_s3_path(template_name)
|
11
|
-
#
|
11
|
+
# hi-jacking Uploader for https_url
|
12
12
|
template_path = "output/#{@blueprint}/templates/#{template_name}.yml"
|
13
|
-
|
14
|
-
upload.s3_https_url(template_path)
|
13
|
+
Lono::S3::Uploader.new(template_path).s3_https_url
|
15
14
|
end
|
16
15
|
|
17
16
|
def template_params(param_name)
|
@@ -13,17 +13,25 @@ class Lono::Template
|
|
13
13
|
|
14
14
|
def replacements
|
15
15
|
map = {}
|
16
|
+
|
16
17
|
registry_items.each do |item|
|
17
18
|
if item.type == "lambda_layer"
|
18
19
|
placeholder = "file://app/files/lambda_layer/#{item.name}"
|
19
20
|
elsif item.directory? || item.file?
|
20
21
|
placeholder = "file://app/files/file/#{item.name}"
|
21
22
|
else
|
22
|
-
puts "WARN: PostProcessor replacements Cannot find file: #{item.
|
23
|
+
puts "WARN: PostProcessor replacements Cannot find file: #{item.output_path}"
|
23
24
|
next
|
24
25
|
end
|
25
26
|
map[placeholder] = item.s3_path
|
26
27
|
end
|
28
|
+
|
29
|
+
Lono::Configset::S3File::Registry.items.each do |item|
|
30
|
+
placeholder = "file://configset/#{item.configset}/#{item.name}"
|
31
|
+
# map[placeholder] = "https://s3.amazonaws.com/#{Lono::S3::Bucket.name}/#{item.s3_path}"
|
32
|
+
map[placeholder] = item.replacement_value
|
33
|
+
end
|
34
|
+
|
27
35
|
map
|
28
36
|
end
|
29
37
|
|