lono 3.5.0 → 4.0.0

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.
Files changed (186) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +15 -4
  3. data/.rspec +1 -0
  4. data/CHANGELOG.md +15 -1
  5. data/Gemfile +3 -3
  6. data/Guardfile +17 -8
  7. data/{LICENSE → LICENSE.txt} +1 -1
  8. data/README.md +20 -12
  9. data/Rakefile +1 -2
  10. data/{bin → exe}/lono +1 -0
  11. data/lib/lono.rb +12 -9
  12. data/lib/lono/cfn.rb +7 -9
  13. data/lib/lono/cfn/{aws_services.rb → aws_service.rb} +1 -1
  14. data/lib/lono/cfn/base.rb +41 -38
  15. data/lib/lono/cfn/create.rb +6 -2
  16. data/lib/lono/cfn/delete.rb +2 -2
  17. data/lib/lono/cfn/diff.rb +1 -1
  18. data/lib/lono/cfn/preview.rb +26 -15
  19. data/lib/lono/cfn/update.rb +11 -9
  20. data/lib/lono/cfn/util.rb +3 -3
  21. data/lib/lono/clean.rb +1 -1
  22. data/lib/lono/cli.rb +71 -39
  23. data/lib/lono/command.rb +42 -18
  24. data/lib/lono/completer.rb +162 -0
  25. data/lib/lono/completer/script.rb +6 -0
  26. data/lib/lono/completer/script.sh +10 -0
  27. data/lib/lono/completion.rb +15 -0
  28. data/lib/lono/core.rb +23 -9
  29. data/lib/lono/core/config.rb +20 -0
  30. data/lib/lono/default/settings.yml +33 -13
  31. data/lib/lono/help.rb +6 -79
  32. data/lib/lono/help/cfn.md +6 -0
  33. data/lib/lono/help/cfn/create.md +22 -0
  34. data/lib/lono/help/cfn/delete.md +5 -0
  35. data/lib/lono/help/cfn/diff.md +5 -0
  36. data/lib/lono/help/cfn/download.md +5 -0
  37. data/lib/lono/help/cfn/preview.md +11 -0
  38. data/lib/lono/help/cfn/update.md +21 -0
  39. data/lib/lono/help/completion.md +22 -0
  40. data/lib/lono/help/completion_script.md +3 -0
  41. data/lib/lono/help/generate.md +7 -0
  42. data/lib/lono/help/hello.md +5 -0
  43. data/lib/lono/help/import.md +7 -0
  44. data/lib/lono/help/inspect.md +4 -0
  45. data/lib/lono/help/inspect/depends.md +3 -0
  46. data/lib/lono/help/inspect/summary.md +3 -0
  47. data/lib/lono/help/new.md +8 -0
  48. data/lib/lono/help/param.md +3 -0
  49. data/lib/lono/{param/help.rb → help/param/generate.md} +1 -9
  50. data/lib/lono/help/script/build.md +5 -0
  51. data/lib/lono/help/script/upload.md +8 -0
  52. data/lib/lono/help/template.md +4 -0
  53. data/lib/lono/help/template/bashify.md +4 -0
  54. data/lib/lono/help/template/generate.md +7 -0
  55. data/lib/lono/help/user_data.md +3 -0
  56. data/lib/lono/importer.rb +43 -20
  57. data/lib/lono/inspector.rb +2 -19
  58. data/lib/lono/inspector/base.rb +2 -2
  59. data/lib/lono/inspector/{depends.rb → graph.rb} +3 -3
  60. data/lib/lono/inspector/summary.rb +1 -1
  61. data/lib/lono/new.rb +79 -26
  62. data/lib/lono/new/helper.rb +16 -0
  63. data/lib/lono/new/message.rb +35 -0
  64. data/lib/lono/param.rb +1 -2
  65. data/lib/lono/param/generator.rb +34 -86
  66. data/lib/lono/project_checker.rb +35 -40
  67. data/lib/lono/script.rb +19 -0
  68. data/lib/lono/script/base.rb +9 -0
  69. data/lib/lono/script/build.rb +73 -0
  70. data/lib/lono/script/upload.rb +81 -0
  71. data/lib/lono/sequence.rb +33 -0
  72. data/lib/lono/setting.rb +83 -0
  73. data/lib/lono/template.rb +8 -9
  74. data/lib/lono/template/{aws_services.rb → aws_service.rb} +1 -1
  75. data/lib/lono/template/context.rb +73 -0
  76. data/lib/lono/template/dsl.rb +63 -64
  77. data/lib/lono/template/helper.rb +201 -0
  78. data/lib/lono/template/template.rb +29 -221
  79. data/lib/lono/template/upload.rb +41 -33
  80. data/lib/lono/upgrade4.rb +175 -0
  81. data/lib/lono/user_data.rb +31 -0
  82. data/lib/lono/version.rb +1 -1
  83. data/lib/starter_projects/autoscaling/.gitignore +1 -0
  84. data/lib/starter_projects/{json_project → autoscaling}/Gemfile +0 -0
  85. data/lib/starter_projects/{yaml_project → autoscaling}/Guardfile +0 -0
  86. data/lib/starter_projects/autoscaling/README.md +118 -0
  87. data/lib/starter_projects/autoscaling/app/definitions/base.rb +2 -0
  88. data/lib/starter_projects/autoscaling/app/templates/autoscaling.yml +682 -0
  89. data/lib/starter_projects/autoscaling/config/params/base/autoscaling.txt +6 -0
  90. data/lib/starter_projects/autoscaling/config/settings.yml +33 -0
  91. data/lib/starter_projects/ec2/.gitignore +1 -0
  92. data/lib/starter_projects/{yaml_project → ec2}/Gemfile +0 -0
  93. data/lib/starter_projects/{json_project → ec2}/Guardfile +1 -1
  94. data/lib/starter_projects/ec2/README.md +86 -0
  95. data/lib/starter_projects/ec2/app/definitions/base.rb +2 -0
  96. data/lib/starter_projects/ec2/app/definitions/development.rb +1 -0
  97. data/lib/starter_projects/ec2/app/definitions/production.rb +1 -0
  98. data/lib/starter_projects/{yaml_project → ec2/app}/helpers/my_custom_helper.rb +0 -0
  99. data/lib/starter_projects/{json_project/templates/user_data/app.sh → ec2/app/partials/user_data/bootstrap.sh} +1 -2
  100. data/lib/starter_projects/{yaml_project → ec2/app}/templates/example.yml +0 -0
  101. data/lib/starter_projects/{json_project/params/base/api-web.txt → ec2/config/params/base/example.txt} +0 -0
  102. data/lib/starter_projects/ec2/config/params/development/example.txt +3 -0
  103. data/lib/starter_projects/ec2/config/params/production/example.txt +2 -0
  104. data/lib/starter_projects/ec2/config/settings.yml +33 -0
  105. data/lib/starter_projects/ec2/config/variables/base.rb +3 -0
  106. data/lib/starter_projects/ec2/config/variables/development.rb +2 -0
  107. data/lib/starter_projects/ec2/config/variables/production.rb +2 -0
  108. data/lib/starter_projects/ec2/welcome.txt +8 -0
  109. data/lib/starter_projects/skeleton/.gitignore +1 -0
  110. data/lib/starter_projects/skeleton/Gemfile +3 -0
  111. data/lib/starter_projects/skeleton/Guardfile +12 -0
  112. data/lib/starter_projects/skeleton/README.md +53 -0
  113. data/{spec/fixtures/my_project/templates/.gitkeep → lib/starter_projects/skeleton/app/definitions/base.rb} +0 -0
  114. data/lib/starter_projects/skeleton/config/settings.yml +33 -0
  115. data/lib/starter_projects/skeleton/welcome.txt +7 -0
  116. data/lono.gemspec +12 -10
  117. data/spec/fixtures/lono_project/.gitignore +1 -0
  118. data/spec/fixtures/lono_project/Gemfile +3 -0
  119. data/spec/fixtures/lono_project/Guardfile +12 -0
  120. data/spec/fixtures/lono_project/app/definitions/base.rb +10 -0
  121. data/spec/fixtures/lono_project/app/definitions/base/more.rb +7 -0
  122. data/spec/fixtures/lono_project/app/definitions/development.rb +1 -0
  123. data/spec/fixtures/lono_project/app/definitions/production.rb +1 -0
  124. data/spec/fixtures/lono_project/app/helpers/custom_helper.rb +5 -0
  125. data/spec/fixtures/lono_project/app/partials/security_group.yml +10 -0
  126. data/{lib/starter_projects/yaml_project/templates/partial → spec/fixtures/lono_project/app/partials}/user_data/bootstrap.sh +8 -2
  127. data/spec/fixtures/lono_project/app/templates/example.yml +50 -0
  128. data/{lib/starter_projects/yaml_project/params/base/api-web-prod.txt → spec/fixtures/lono_project/config/params/base/example.txt} +1 -0
  129. data/spec/fixtures/lono_project/config/params/development/example.txt +1 -0
  130. data/spec/fixtures/lono_project/config/params/production/example.txt +1 -0
  131. data/spec/fixtures/lono_project/config/settings.yml +31 -0
  132. data/spec/fixtures/lono_project/config/variables/base.rb +3 -0
  133. data/spec/fixtures/lono_project/config/variables/development.rb +1 -0
  134. data/spec/fixtures/lono_project/config/variables/production.rb +1 -0
  135. data/spec/fixtures/params/envonly/params/{prod → development}/network.txt +0 -0
  136. data/spec/fixtures/params/overlay/params/{prod → development}/network.txt +0 -0
  137. data/spec/fixtures/raw_templates/aws-waf-security-automations.template +2 -2
  138. data/spec/lib/lono/cfn_spec.rb +6 -9
  139. data/spec/lib/lono/cli_spec.rb +44 -0
  140. data/spec/lib/lono/completion_spec.rb +17 -0
  141. data/spec/lib/lono/inspect_spec.rb +6 -15
  142. data/spec/lib/lono/param/generator_spec.rb +45 -26
  143. data/spec/lib/lono/param_spec.rb +1 -3
  144. data/spec/lib/lono/setting_spec.rb +47 -0
  145. data/spec/lib/lono/template/dsl_spec.rb +33 -157
  146. data/spec/lib/lono/template_spec.rb +4 -16
  147. data/spec/spec_helper.rb +45 -14
  148. metadata +168 -82
  149. data/.coveralls.yml +0 -1
  150. data/lib/lono/cfn/help.rb +0 -103
  151. data/lib/lono/current_region.rb +0 -42
  152. data/lib/lono/inspector/help.rb +0 -21
  153. data/lib/lono/settings.rb +0 -45
  154. data/lib/lono/template/help.rb +0 -25
  155. data/lib/lono/template/helpers.rb +0 -136
  156. data/lib/starter_projects/json_project/.gitignore +0 -1
  157. data/lib/starter_projects/json_project/config/templates/base/blog.rb +0 -20
  158. data/lib/starter_projects/json_project/config/templates/base/stacks.rb +0 -58
  159. data/lib/starter_projects/json_project/templates/db.json +0 -212
  160. data/lib/starter_projects/json_project/templates/partial/host_record.json +0 -28
  161. data/lib/starter_projects/json_project/templates/partial/server.json +0 -45
  162. data/lib/starter_projects/json_project/templates/user_data/db.sh +0 -39
  163. data/lib/starter_projects/json_project/templates/user_data/db2.sh +0 -2
  164. data/lib/starter_projects/json_project/templates/user_data/ruby_script.rb +0 -5
  165. data/lib/starter_projects/json_project/templates/web.json +0 -386
  166. data/lib/starter_projects/yaml_project/.gitignore +0 -1
  167. data/lib/starter_projects/yaml_project/config/templates/base/blog.rb +0 -20
  168. data/lib/starter_projects/yaml_project/config/templates/base/stacks.rb +0 -56
  169. data/lib/starter_projects/yaml_project/config/templates/prod/stacks.rb +0 -1
  170. data/lib/starter_projects/yaml_project/config/templates/stag/stacks.rb +0 -1
  171. data/lib/starter_projects/yaml_project/config/variables/base/variables.rb +0 -4
  172. data/lib/starter_projects/yaml_project/config/variables/prod/variables.rb +0 -1
  173. data/lib/starter_projects/yaml_project/config/variables/stag/variables.rb +0 -1
  174. data/lib/starter_projects/yaml_project/params/base/example.txt +0 -2
  175. data/lib/starter_projects/yaml_project/params/prod/example.txt +0 -1
  176. data/lib/starter_projects/yaml_project/params/stag/example.txt +0 -1
  177. data/lib/starter_projects/yaml_project/templates/db.yml +0 -148
  178. data/lib/starter_projects/yaml_project/templates/partial/host_record.yml +0 -14
  179. data/lib/starter_projects/yaml_project/templates/partial/server.yml +0 -59
  180. data/lib/starter_projects/yaml_project/templates/web.yml +0 -206
  181. data/spec/fixtures/my_project/config/templates/base/stacks.rb +0 -3
  182. data/spec/fixtures/my_project/params/my-stack.txt +0 -3
  183. data/spec/fixtures/my_project/templates/my-stack.yml +0 -0
  184. data/spec/lib/lono/new_spec.rb +0 -59
  185. data/spec/lib/lono/template/template_spec.rb +0 -104
  186. data/spec/lib/lono_spec.rb +0 -27
@@ -0,0 +1,6 @@
1
+ class Lono::Completer::Script
2
+ def self.generate
3
+ bash_script = File.expand_path("script.sh", File.dirname(__FILE__))
4
+ puts "source #{bash_script}"
5
+ end
6
+ end
@@ -0,0 +1,10 @@
1
+ _lono() {
2
+ COMPREPLY=()
3
+ local word="${COMP_WORDS[COMP_CWORD]}"
4
+ local words=("${COMP_WORDS[@]}")
5
+ unset words[0]
6
+ local completion=$(lono completion ${words[@]})
7
+ COMPREPLY=( $(compgen -W "$completion" -- "$word") )
8
+ }
9
+
10
+ complete -F _lono lono
@@ -0,0 +1,15 @@
1
+ module Lono
2
+ class Completion < Command
3
+ desc "script", "generates script that can be eval to setup auto-completion"
4
+ long_desc Help.text("completion:script")
5
+ def script
6
+ Completer::Script.generate
7
+ end
8
+
9
+ desc "completions *PARAMS", "prints words for auto-completion"
10
+ long_desc Help.text("completion:list")
11
+ def list(*params)
12
+ Completer.new(*params).run
13
+ end
14
+ end
15
+ end
data/lib/lono/core.rb CHANGED
@@ -2,8 +2,11 @@ require 'pathname'
2
2
 
3
3
  module Lono
4
4
  module Core
5
- def env
6
- LONO_ENV
5
+ autoload :Config, 'lono/core/config'
6
+
7
+ @@config = nil
8
+ def config
9
+ @@config ||= Config.new
7
10
  end
8
11
 
9
12
  def root
@@ -11,14 +14,25 @@ module Lono
11
14
  Pathname.new(path)
12
15
  end
13
16
 
14
- def setup!
15
- settings = Lono::Settings.new.data
16
- map = settings['aws_profile_lono_env_map']
17
-
18
- lono_env = map[ENV['AWS_PROFILE']] || map['default'] || 'prod' # defaults to prod
19
- lono_env = ENV['LONO_ENV'] if ENV['LONO_ENV'] # highest precedence
17
+ @@env = nil
18
+ def env
19
+ return @@env if @@env
20
+ ufo_env = env_from_profile(ENV['AWS_PROFILE']) || 'development'
21
+ ufo_env = ENV['LONO_ENV'] if ENV['LONO_ENV'] # highest precedence
22
+ @@env = ufo_env
23
+ end
20
24
 
21
- Kernel.const_set(:LONO_ENV, lono_env)
25
+ private
26
+ # Do not use the Setting class to load the profile because it can cause an
27
+ # infinite loop then if we decide to use Lono.env from within settings class.
28
+ def env_from_profile(aws_profile)
29
+ data = YAML.load_file("#{Lono.root}/config/settings.yml")
30
+ env = data.find do |_env, setting|
31
+ setting ||= {}
32
+ profiles = setting['aws_profiles']
33
+ profiles && profiles.include?(aws_profile)
34
+ end
35
+ env.first if env
22
36
  end
23
37
  end
24
38
  end
@@ -0,0 +1,20 @@
1
+ module Lono::Core
2
+ class Config
3
+ PATHS = {
4
+ definitions_path: "app/definitions",
5
+ helpers_path: "app/helpers",
6
+ partials_path: "app/partials",
7
+ scripts_path: "app/scripts",
8
+ templates_path: "app/templates",
9
+ user_data_path: "app/user_data",
10
+ params_path: "config/params",
11
+ variables_path: "config/variables",
12
+ output_path: "output",
13
+ }
14
+ PATHS.each do |meth, path|
15
+ define_method meth do
16
+ "#{Lono.root}/#{path}"
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,13 +1,33 @@
1
- aws_profile_lono_env_map:
2
- default: prod
3
- # More examples:
4
- # aws_profile1: prod
5
- # aws_profile2: stag
6
- # aws_profile3: dev
7
- s3:
8
- path:
9
- default: # default is nil
10
- # You can specify different buckets for different LONO_ENV. Examples:
11
- # prod: s3://mybucket/templates/storage/path
12
- # stag: s3://mybucket/templates/storage/path
13
- randomize_stack_name: false
1
+ # More info: http://lono.cloud/docs/settings/
2
+ # The base config is specially treated. It gets included the other environments automatically.
3
+ # Yaml also directly supports merging with & and <<* syntax but doing it automatically
4
+ # for a cleaner syntax.
5
+ base:
6
+ # http://lono.cloud/docs/app-scripts/
7
+ # extract_scripts:
8
+ # to: "/opt"
9
+ # as: "ec2-user"
10
+ # If s3_folder is set then the generated templates and app/scripts will automatically
11
+ # be uploaded to s3.
12
+ # There are 2 formats for s3_folder:
13
+ # Format 1:
14
+ # s3_folder: mybucket/path/to/folder # simple string
15
+ # Format 2:
16
+ # s3_folder: # Hash options in order to support multiple AWS_PROFILEs
17
+ # default: mybucket/folder
18
+ # aws_profile1: mybucket/folder
19
+ # aws_profile2: another-bucket/storage/folder
20
+ # randomize_stack_name: true # tack on a 3 char random string at the end of the stack name for lono cfn create
21
+
22
+
23
+ development:
24
+ # When you have AWS_PROFILE set to one of these values, lono will switch to the desired
25
+ # environment. This prevents you from switching AWS_PROFILE, forgetting to
26
+ # also switch LONO_ENV, and accidentally deploying to production vs development.
27
+ # aws_profiles:
28
+ # - dev_profile1
29
+ # - dev_profile2
30
+
31
+ production:
32
+ # aws_profiles:
33
+ # - prod_profile
data/lib/lono/help.rb CHANGED
@@ -1,82 +1,9 @@
1
1
  module Lono::Help
2
- def new_long_desc
3
- <<-EOL
4
- Examples:
5
-
6
- $ lono new project
7
-
8
- $ lono new lono
9
- EOL
2
+ class << self
3
+ def text(namespaced_command)
4
+ path = namespaced_command.to_s.gsub(':','/')
5
+ path = File.expand_path("../help/#{path}.md", __FILE__)
6
+ IO.read(path) if File.exist?(path)
7
+ end
10
8
  end
11
-
12
- def import
13
- <<-EOL
14
- Examples:
15
-
16
- $ lono import /path/to/file
17
-
18
- $ lono import http://url.com/path/to/template.json
19
-
20
- $ lono import http://url.com/path/to/template.yml
21
-
22
- Imports a raw CloudFormation template and lono-fies it.
23
- EOL
24
- end
25
-
26
- def generate
27
- <<-EOL
28
- Examples:
29
-
30
- $ lono generate
31
-
32
- $ lono g -c # shortcut
33
-
34
- Builds both CloudFormation template and parameter files based on lono project and writes them to the output folder on the filesystem.
35
- EOL
36
- end
37
-
38
- def template
39
- <<-EOL
40
- Examples:
41
-
42
- $ lono template generate --help
43
-
44
- $ lono template bashify --help
45
- EOL
46
-
47
- end
48
-
49
- def cfn
50
- <<-EOL
51
- Examples:
52
-
53
- $ lono cfn create my-stack
54
-
55
- $ lono cfn preview my-stack
56
-
57
- $ lono cfn update my-stack
58
-
59
- $ lono cfn delete my-stack
60
- EOL
61
- end
62
-
63
- def param
64
- <<-EOL
65
- Examples:
66
-
67
- $ lono param generate
68
- EOL
69
- end
70
-
71
- def inspector
72
- <<-EOL
73
- Examples:
74
-
75
- $ lono inspect depends my-stack
76
-
77
- $ lono inspect summary my-stack
78
- EOL
79
- end
80
-
81
- extend self
82
9
  end
@@ -0,0 +1,6 @@
1
+ Examples:
2
+
3
+ lono cfn create my-stack
4
+ lono cfn preview my-stack
5
+ lono cfn update my-stack
6
+ lono cfn delete my-stack
@@ -0,0 +1,22 @@
1
+ Examples:
2
+
3
+ Provided that you are in a lono project and have a `my-stack` lono template definition. To create a stack you can simply run:
4
+
5
+ lono cfn create my-stack
6
+
7
+ The above command will generate and use the template in output/my-stack.json and parameters in params/my-stack.txt. The template by convention defaults to the name of the stack. In turn, the params by convention defaults to the name of the template.
8
+
9
+ Here are examples of overriding the template and params name conventions.
10
+
11
+ lono cfn create my-stack --template different1
12
+
13
+ The template used is output/different1.json and the parameters used is output/params/prod/different1.json.
14
+
15
+ lono cfn create my-stack --params different2
16
+
17
+ The template used is output/my-stack.json and the parameters used is output/params/prod/different2.json.
18
+
19
+ lono cfn create my-stack --template different3 --params different4
20
+
21
+ The template used is output/different3.json and the parameters used is output/params/prod/different4.json.
22
+
@@ -0,0 +1,5 @@
1
+ Examples:
2
+
3
+ lono cfn delete my-stack
4
+
5
+ The above command will delete my-stack.
@@ -0,0 +1,5 @@
1
+ Displays code diff of the generated CloudFormation template locally vs the existing template on AWS. You can set a desired diff viewer by setting the LONO_CFN_DIFF environment variable.
2
+
3
+ Examples:
4
+
5
+ lono cfn diff my-stack
@@ -0,0 +1,5 @@
1
+ Download CloudFormation template from existing template on AWS.
2
+
3
+ Examples:
4
+
5
+ lono cfn download my-stack
@@ -0,0 +1,11 @@
1
+ Generates a CloudFormation preview. This is similar to a `terraform plan` or puppet's dry-run mode.
2
+
3
+ Example output:
4
+
5
+ CloudFormation preview for 'example' stack update. Changes:
6
+
7
+ Remove AWS::Route53::RecordSet: DnsRecord testsubdomain.sub.tongueroo.com
8
+
9
+ Examples:
10
+
11
+ lono cfn preview my-stack
@@ -0,0 +1,21 @@
1
+ Examples:
2
+
3
+ Provided that you are in a lono project and have a `my-stack` lono template definition. To update a stack you can simply run:
4
+
5
+ lono cfn update my-stack
6
+
7
+ The above command will generate and use the template in output/my-stack.json and parameters in params/my-stack.txt. The template by convention defaults to the name of the stack. In turn, the params by convention defaults to the name of the template.
8
+
9
+ Here are examples of overriding the template and params name conventions.
10
+
11
+ lono cfn update my-stack --template different1
12
+
13
+ The template used is output/different1.json and the parameters used is output/params/prod/different1.json.
14
+
15
+ lono cfn update my-stack --params different2
16
+
17
+ The template used is output/my-stack.json and the parameters used is output/params/prod/different2.json.
18
+
19
+ lono cfn update my-stack --template different3 --params different4
20
+
21
+ The template used is output/different3.json and the parameters used is output/params/prod/different4.json.
@@ -0,0 +1,22 @@
1
+ Example:
2
+
3
+ lono completion
4
+
5
+ Prints words for TAB auto-completion.
6
+
7
+ Examples:
8
+
9
+ lono completion
10
+ lono completion hello
11
+ lono completion hello name
12
+
13
+ To enable, TAB auto-completion add the following to your profile:
14
+
15
+ eval $(lono completion script)
16
+
17
+ Auto-completion example usage:
18
+
19
+ lono [TAB]
20
+ lono hello [TAB]
21
+ lono hello name [TAB]
22
+ lono hello name --[TAB]
@@ -0,0 +1,3 @@
1
+ To use, add the following to your ~/.bashrc or ~/.profile
2
+
3
+ eval $(lono completion script)
@@ -0,0 +1,7 @@
1
+ Examples:
2
+
3
+ lono generate
4
+ lono generate --clean
5
+ lono g --clean # shortcut
6
+
7
+ Builds both CloudFormation template and parameter files based on lono project and writes them to the output folder on the filesystem.
@@ -0,0 +1,5 @@
1
+ Examples:
2
+
3
+ lono hello
4
+ lono hello NAME
5
+ lono hello NAME --from me
@@ -0,0 +1,7 @@
1
+ Examples:
2
+
3
+ lono import /path/to/file
4
+ lono import http://url.com/path/to/template.json
5
+ lono import http://url.com/path/to/template.yml
6
+
7
+ Imports a raw CloudFormation template and lono-fies it.
@@ -0,0 +1,4 @@
1
+ Examples:
2
+
3
+ lono inspect depends my-stack
4
+ lono inspect summary my-stack
@@ -0,0 +1,3 @@
1
+ Example:
2
+
3
+ lono inspect depends my-stack
@@ -0,0 +1,3 @@
1
+ Example:
2
+
3
+ lono inspect summary my-stack
@@ -0,0 +1,8 @@
1
+ Examples:
2
+
3
+ lono new infra # skeleton project with barebones structure
4
+ TEMPLATE=ec2 lono new infra # creates a single server
5
+ TEMPLATE=autoscaling lono new infra
6
+
7
+ For a list of the starter templates:
8
+ https://github.com/tongueroo/lono/tree/master/lib/starter_projects
@@ -0,0 +1,3 @@
1
+ Examples:
2
+
3
+ lono param generate
@@ -1,15 +1,7 @@
1
- class Lono::Param::Help
2
- class << self
3
- def generate
4
- <<-EOL
5
1
  Example:
6
2
 
7
3
  To generate a CloudFormation json parameter files in the params folder to the output/params folder.
8
4
 
9
- $ lono-params generate
5
+ lono-params generate
10
6
 
11
7
  If you have params/my-stack.txt. It will generate a CloudFormation json file in output/params/my-stack.json.
12
- EOL
13
- end
14
- end
15
- end
@@ -0,0 +1,5 @@
1
+ Builds output/scripts/scripts-md5sum.tgz from app/script folder.
2
+
3
+ Examples:
4
+
5
+ lono script build