lono 4.0.0 → 4.0.1

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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/bin/commit_docs.sh +26 -0
  3. data/.circleci/config.yml +15 -0
  4. data/CHANGELOG.md +4 -0
  5. data/README.md +2 -2
  6. data/Rakefile +6 -0
  7. data/lib/lono/cfn/diff.rb +1 -1
  8. data/lib/lono/cfn.rb +6 -7
  9. data/lib/lono/cli.rb +10 -10
  10. data/lib/lono/command.rb +14 -0
  11. data/lib/lono/help/cfn/create.md +6 -7
  12. data/lib/lono/help/cfn/delete.md +11 -3
  13. data/lib/lono/help/cfn/diff.md +12 -3
  14. data/lib/lono/help/cfn/download.md +1 -3
  15. data/lib/lono/help/cfn/preview.md +21 -6
  16. data/lib/lono/help/cfn/update.md +5 -5
  17. data/lib/lono/help/cfn.md +1 -1
  18. data/lib/lono/help/completion.md +7 -7
  19. data/lib/lono/help/completion_script.md +2 -2
  20. data/lib/lono/help/generate.md +16 -5
  21. data/lib/lono/help/import.md +25 -5
  22. data/lib/lono/help/new.md +52 -6
  23. data/lib/lono/help/param/generate.md +3 -5
  24. data/lib/lono/help/param.md +1 -1
  25. data/lib/lono/help/script/build.md +1 -3
  26. data/lib/lono/help/script/upload.md +2 -2
  27. data/lib/lono/help/summary.md +19 -0
  28. data/lib/lono/help/template/bashify.md +1 -1
  29. data/lib/lono/help/template/generate.md +1 -1
  30. data/lib/lono/help/template.md +1 -1
  31. data/lib/lono/help/upgrade4.md +25 -0
  32. data/lib/lono/help/user_data.md +36 -1
  33. data/lib/lono/help/xgraph.md +16 -0
  34. data/lib/lono/help.rb +7 -0
  35. data/lib/lono/markdown/creator.rb +65 -0
  36. data/lib/lono/markdown/index.rb +36 -0
  37. data/lib/lono/markdown/page.rb +169 -0
  38. data/lib/lono/markdown/shell.rb +11 -0
  39. data/lib/lono/markdown.rb +8 -0
  40. data/lib/lono/param.rb +1 -1
  41. data/lib/lono/script.rb +2 -2
  42. data/lib/lono/version.rb +1 -1
  43. data/lib/lono.rb +1 -0
  44. data/spec/lib/lono/markdown_spec.rb +99 -0
  45. metadata +13 -6
  46. data/lib/lono/help/hello.md +0 -5
  47. data/lib/lono/help/inspect/depends.md +0 -3
  48. data/lib/lono/help/inspect/summary.md +0 -3
  49. data/lib/lono/help/inspect.md +0 -4
@@ -0,0 +1,25 @@
1
+ Lono version 4 changed a few things:
2
+
3
+ * Simplified the [directory structure](http://lono.cloud/docs/directory-structure/) of a lono project.
4
+ * Format of the [settings.yml](http://lono.cloud/docs/settings/) changed.
5
+ * LONO_ENV are longer full names now.
6
+ * Refer to the [CHANGELOG](https://github.com/tongueroo/lono/blob/master/CHANGELOG.md) for more details.
7
+
8
+ This task helps you upgrade from lono version 3 to version 4.
9
+
10
+ ### Example Output
11
+
12
+ $ lono upgrade4
13
+ Upgrading structure of your current project to the new lono version 4 project structure
14
+ mv helpers app/helpers
15
+ mv params config/params
16
+ mv config/templates app/definitions
17
+ mv templates app/templates
18
+ mv app/templates/partial app/partials
19
+ mv app/partials/user_data app/user_data
20
+ Updating structure of config/variables
21
+ Updating structure of app/definitions
22
+ mv config/params/prod config/params/production
23
+ mv config/params/stag config/params/staging
24
+ Upgrade to lono version 4 complete!
25
+ $
@@ -1,3 +1,38 @@
1
1
  Generates user_data scripts in `app/user_data` so you can see it for debugging. Let's say you have a script in `app/user_data/bootstrap.sh`. To generate it:
2
2
 
3
- lono user_data bootstrap
3
+ lono user_data bootstrap
4
+
5
+ ## Example Output
6
+
7
+ Script:
8
+
9
+ #!/bin/bash -exu
10
+
11
+ <%= extract_scripts(to: "/opt") %>
12
+
13
+ SCRIPTS=/opt/scripts
14
+ $SCRIPTS/install_stuff.sh
15
+
16
+ Running `ono user_data bootstrap` produces:
17
+
18
+ $ lono user_data bootstrap
19
+ Detected app/scripts
20
+ Tarballing app/scripts folder to scripts.tgz
21
+ => cd app && dot_clean .
22
+ => cd app && tar -c scripts | gzip -n > scripts.tgz
23
+ Tarball created at output/scripts/scripts-93b8b29b.tgz
24
+ Generating user_data for 'bootstrap' at ./app/user_data/bootstrap.sh
25
+ #!/bin/bash -exu
26
+
27
+ # Generated from the lono extract_scripts helper.
28
+ # Downloads scripts from s3, extract them, and setup.
29
+ mkdir -p /opt
30
+ aws s3 cp s3://mybucket/path/to/folder/development/scripts/scripts-93b8b29b.tgz /opt/
31
+ cd /opt
32
+ tar zxf /opt/scripts-93b8b29b.tgz
33
+ chmod -R a+x /opt/scripts
34
+ chown -R ec2-user:ec2-user /opt/scripts
35
+
36
+ SCRIPTS=/opt/scripts
37
+ $SCRIPTS/install_stuff.sh
38
+ $
@@ -0,0 +1,16 @@
1
+ ## Example
2
+
3
+ With more complex CloudFormation templates, the dependency get more difficult to follow. Visualizing the dependencies is helpful.
4
+
5
+ lono import https://s3.amazonaws.com/solutions-reference/aws-waf-security-automations/latest/aws-waf-security-automations.template --name waf
6
+ lono inspect depends waf
7
+
8
+ This above command generates a dependency chart. The command uses the DependsOn attribute specified in each resource to figure this out. It does not show implied dependencies that CloudFormaton automatically computes for us. The chart looks like this:
9
+
10
+ ![](/img/tutorial/waf-chart.png){:.doc-photo}
11
+
12
+ The chart is generated with [Graphviz](http://www.graphviz.org/). To install:
13
+
14
+ brew install graphviz
15
+
16
+ Blog Post also covers this: [lono inspect depends Tutorial Introduction](https://blog.boltops.com/2017/09/20/lono-inspect-depends-tutorial-introduction)
data/lib/lono/help.rb CHANGED
@@ -1,9 +1,16 @@
1
1
  module Lono::Help
2
2
  class << self
3
+ # namespaced_command: cfn/create or cfn:create
4
+ # both work.
3
5
  def text(namespaced_command)
4
6
  path = namespaced_command.to_s.gsub(':','/')
5
7
  path = File.expand_path("../help/#{path}.md", __FILE__)
6
8
  IO.read(path) if File.exist?(path)
7
9
  end
10
+
11
+ # Generates a markdown file for site docuemtation
12
+ def markdown
13
+
14
+ end
8
15
  end
9
16
  end
@@ -0,0 +1,65 @@
1
+ require "active_support/core_ext/object"
2
+
3
+ module Lono::Markdown
4
+ class Creator
5
+ cattr_accessor :mute
6
+
7
+ def self.create_all(command_class, parent_command_name=nil)
8
+ clean unless parent_command_name
9
+ new(command_class, parent_command_name).create_all
10
+ end
11
+
12
+ def self.clean
13
+ FileUtils.rm_rf("docs/_reference")
14
+ FileUtils.rm_f("docs/reference.md")
15
+ end
16
+
17
+ # command_class is top-level CLI class.
18
+ def initialize(command_class, parent_command_name)
19
+ @command_class = command_class
20
+ @parent_command_name = parent_command_name
21
+ end
22
+
23
+ def create_all
24
+ create_index unless @parent_command_name
25
+
26
+ @command_class.commands.keys.each do |command_name|
27
+ page = Page.new(@command_class, command_name, @parent_command_name)
28
+ create_page(page)
29
+
30
+ if subcommand?(command_name)
31
+ subcommand_class = subcommand_class(command_name)
32
+ parent_command_name = command_name
33
+
34
+ say "Creating subcommands pages for #{parent_command_name}..."
35
+ Creator.create_all(subcommand_class, parent_command_name)
36
+ end
37
+ end
38
+ end
39
+
40
+ def create_page(page)
41
+ say "Creating #{page.path}..."
42
+ FileUtils.mkdir_p(File.dirname(page.path))
43
+ IO.write(page.path, page.doc)
44
+ end
45
+
46
+ def create_index
47
+ page = Index.new(@command_class)
48
+ FileUtils.mkdir_p(File.dirname(page.path))
49
+ say "Creating #{page.path}"
50
+ IO.write(page.path, page.doc)
51
+ end
52
+
53
+ def subcommand?(command_name)
54
+ @command_class.subcommands.include?(command_name)
55
+ end
56
+
57
+ def subcommand_class(command_name)
58
+ @command_class.subcommand_classes[command_name]
59
+ end
60
+
61
+ def say(text)
62
+ puts text unless self.class.mute
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,36 @@
1
+ module Lono::Markdown
2
+ class Index
3
+ def initialize(command_class)
4
+ @command_class = command_class
5
+ end
6
+
7
+ def path
8
+ "docs/reference.md"
9
+ end
10
+
11
+ def command_list
12
+ @command_class.commands.keys.sort.map.each do |command_name|
13
+ page = Page.new(@command_class, command_name)
14
+ link = page.path.sub("docs/", "")
15
+ # Example: [lono cfn]({% link _reference/lono-cfn.md %})
16
+ "* [lono #{command_name}]({% link #{link} %})"
17
+ end.join("\n")
18
+ end
19
+
20
+ def summary
21
+ <<-EOL
22
+ Lono is a CloudFormation framework tool that helps you manage your templates. Lono handles the entire CloudFormation lifecycle. It starts with helping you develop your templates and helps you all the way to the infrastructure provisioning step.
23
+ EOL
24
+ end
25
+
26
+ def doc
27
+ <<-EOL
28
+ ---
29
+ title: CLI Reference
30
+ ---
31
+ #{summary}
32
+ #{command_list}
33
+ EOL
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,169 @@
1
+ module Lono::Markdown
2
+ class Page
3
+ def initialize(command_class, command_name, parent_command_name=nil)
4
+ @command_class = command_class
5
+ @command_name = command_name
6
+ @parent_command_name = parent_command_name
7
+ @command = @command_class.commands[@command_name]
8
+ end
9
+
10
+ def usage
11
+ banner = @command_class.send(:banner, @command) # banner is protected method
12
+ invoking_command = File.basename($0) # could be rspec, etc
13
+ banner.sub(invoking_command, cli_name)
14
+ end
15
+
16
+ def description
17
+ @command.description
18
+ end
19
+
20
+ def options
21
+ shell = Shell.new
22
+ @command_class.send(:class_options_help, shell, nil => @command.options.values)
23
+ text = shell.stdout.string
24
+ return "" if text.empty? # there are no options
25
+
26
+ lines = text.split("\n")[1..-1] # remove first line wihth "Options: "
27
+ lines.map! do |line|
28
+ # remove 2 leading spaces
29
+ line.sub(/^ /, '')
30
+ end
31
+ lines.join("\n")
32
+ end
33
+
34
+ # Use command's long description as many description
35
+ def long_description
36
+ text = @command.long_description
37
+ return "" if text.nil? # empty description
38
+
39
+ lines = text.split("\n")
40
+ lines.map do |line|
41
+ # In the CLI help, we use 2 spaces to designate commands
42
+ # In Markdown we need 4 spaces.
43
+ line.sub(/^ \b/, ' ')
44
+ end.join("\n")
45
+ end
46
+
47
+ def cli_name
48
+ "lono"
49
+ end
50
+
51
+ def path
52
+ full_name = if @parent_command_name
53
+ "#{cli_name}-#{@parent_command_name}-#{@command_name}"
54
+ else
55
+ "#{cli_name}-#{@command_name}"
56
+ end
57
+ "docs/_reference/#{full_name}.md"
58
+ end
59
+
60
+ def subcommand?
61
+ @command_class.subcommands.include?(@command_name)
62
+ end
63
+
64
+ def subcommand_class
65
+ @command_class.subcommand_classes[@command_name]
66
+ end
67
+
68
+ # Note:
69
+ # printable_commands are in the form:
70
+ # [
71
+ # [command_form,command_comment],
72
+ # [command_form,command_comment],
73
+ # ]
74
+ #
75
+ # It is useful to grab the command form printable_commands as it shows
76
+ # the proper form.
77
+ def subcommand_list
78
+ return '' unless subcommand?
79
+
80
+ invoking_command = File.basename($0) # could be rspec, etc
81
+ command_list = subcommand_class.printable_commands
82
+ .sort_by { |a| a[0] }
83
+ .map { |a| a[0].sub!(invoking_command, cli_name); a } # replace with proper comand
84
+ .reject { |a| a[0].include?("help [COMMAND]") } # filter out help
85
+
86
+ # dress up with markdown
87
+ text = command_list.map do |a|
88
+ command, comment = a[0], a[1].sub(/^# /,'')
89
+ subcommand_name = command.split(' ')[2]
90
+ full_command_path = "#{cli_name}-#{@command_name}-#{subcommand_name}"
91
+ full_command_name = "#{cli_name} #{@command_name} #{subcommand_name}"
92
+ link = "_reference/#{full_command_path}.md"
93
+
94
+ # "* [#{command}]({% link #{link} %})"
95
+ # Example: [lono cfn delete STACK]({% link _reference/lono-cfn-delete.md %})
96
+ "* [#{full_command_name}]({% link #{link} %}) - #{comment}"
97
+ end.join("\n")
98
+
99
+ <<-EOL
100
+ ## Subcommands
101
+
102
+ #{text}
103
+ EOL
104
+ end
105
+
106
+ def doc
107
+ <<-EOL
108
+ #{front_matter}
109
+ #{usage_markdown}
110
+ #{long_desc_markdown}
111
+ #{subcommand_list}
112
+ #{options_markdown}
113
+ EOL
114
+ end
115
+
116
+ def front_matter
117
+ command = [cli_name, @parent_command_name, @command_name].compact.join(' ')
118
+ <<-EOL
119
+ ---
120
+ title: #{command}
121
+ reference: true
122
+ ---
123
+ EOL
124
+ end
125
+
126
+ def usage_markdown
127
+ <<-EOL
128
+ ## Usage
129
+
130
+ #{usage}
131
+ EOL
132
+ end
133
+
134
+ def desc_markdown
135
+ <<-EOL
136
+ ## Description
137
+
138
+ #{description}
139
+ EOL
140
+ end
141
+
142
+ # If the Thor long_description is empty then use the description.
143
+ def long_desc_markdown
144
+ return desc_markdown if long_description.empty?
145
+
146
+ <<-EOL
147
+ ## Description
148
+
149
+ #{description}
150
+
151
+ #{long_description}
152
+ EOL
153
+ end
154
+
155
+ # handles blank options
156
+ def options_markdown
157
+ return '' if options.empty?
158
+
159
+ <<-EOL
160
+ ## Options
161
+
162
+ ```
163
+ #{options}
164
+ ```
165
+ EOL
166
+ end
167
+
168
+ end
169
+ end
@@ -0,0 +1,11 @@
1
+ require 'thor'
2
+
3
+ module Lono::Markdown
4
+ # Override stdout as an @io object so we can grab the text written normally
5
+ # outputted to the shell.
6
+ class Shell < Thor::Shell::Basic
7
+ def stdout
8
+ @io ||= StringIO.new
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ require 'thor'
2
+
3
+ module Lono::Markdown
4
+ autoload :Creator, 'lono/markdown/creator'
5
+ autoload :Index, 'lono/markdown/index'
6
+ autoload :Page, 'lono/markdown/page'
7
+ autoload :Shell, 'lono/markdown/shell'
8
+ end
data/lib/lono/param.rb CHANGED
@@ -7,7 +7,7 @@ class Lono::Param < Lono::Command
7
7
  class_option :noop, type: :boolean
8
8
  class_option :mute, type: :boolean
9
9
 
10
- desc "generate", "generate all parameter files to json format"
10
+ desc "generate", "Generate all parameter files to `output/params`."
11
11
  long_desc Lono::Help.text("param/generate")
12
12
  option :path, desc: "Name of the source that maps to the params txt file. name -> params/NAME.txt. Use this to override the params/NAME.txt convention"
13
13
  def generate
data/lib/lono/script.rb CHANGED
@@ -4,13 +4,13 @@ module Lono
4
4
  autoload :Build, "lono/script/build"
5
5
  autoload :Upload, "lono/script/upload"
6
6
 
7
- desc "build", "Builds output/scripts/scripts-md5sum.tgz from app/script folder"
7
+ desc "build", "Builds `output/scripts/scripts-md5sum.tgz` from `app/script` folder"
8
8
  long_desc Help.text("script/build")
9
9
  def build
10
10
  Build.new(options).run
11
11
  end
12
12
 
13
- desc "upload", "Uploads output/scripts/scripts-md5sum.tgz to s3"
13
+ desc "upload", "Uploads `output/scripts/scripts-md5sum.tgz` to s3"
14
14
  long_desc Help.text("script/upload")
15
15
  def upload
16
16
  Upload.new(options).run
data/lib/lono/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lono
2
- VERSION = "4.0.0"
2
+ VERSION = "4.0.1"
3
3
  end
data/lib/lono.rb CHANGED
@@ -33,6 +33,7 @@ module Lono
33
33
  autoload :Upgrade4, 'lono/upgrade4'
34
34
  autoload :Script, 'lono/script'
35
35
  autoload :UserData, 'lono/user_data'
36
+ autoload :Markdown, 'lono/markdown'
36
37
 
37
38
  extend Core
38
39
  end
@@ -0,0 +1,99 @@
1
+ describe Lono::Markdown::Page do
2
+ let(:page) { Lono::Markdown::Page.new(cli_class, command, parent_command_name) }
3
+ let(:cli_class) { Lono::CLI }
4
+ let(:parent_command_name) { nil }
5
+
6
+ context "MarkdownMaker.create_all" do
7
+ it "docs command" do
8
+ out = execute("rake docs")
9
+ expect(out).to include("Creating")
10
+ end
11
+
12
+ it "generates all docs pages" do
13
+ Lono::Markdown::Creator.mute = true
14
+ Lono::Markdown::Creator.create_all(cli_class)
15
+ end
16
+ end
17
+
18
+ context "generate" do
19
+ let(:command) { "generate" }
20
+
21
+ it "#usage" do
22
+ expect(page.usage).to eq "lono generate"
23
+ end
24
+
25
+ it "#summary" do
26
+ expect(page.summary).to eq "Generate both CloudFormation templates and parameters files"
27
+ end
28
+
29
+ it "#options" do
30
+ expect(page.options).to include("--clean")
31
+ # [--clean], [--no-clean] # remove all output files before generating
32
+ # # Default: true
33
+ # [--quiet], [--no-quiet] # silence the output
34
+ end
35
+
36
+ it "#description" do
37
+ expect(page.description).to include(" lono generate")
38
+ end
39
+
40
+ it "#doc" do
41
+ expect(page.doc).to include("# Summary")
42
+ # puts page.doc # uncomment to see generated page for debugging
43
+ end
44
+ end
45
+
46
+ # subcommand
47
+ context "cfn" do
48
+ let(:command) { "cfn" }
49
+
50
+ it "#usage" do
51
+ expect(page.usage).to eq "lono cfn SUBCOMMAND"
52
+ end
53
+
54
+ it "#summary" do
55
+ expect(page.summary).to eq "cfn subcommand tasks"
56
+ end
57
+
58
+ # Think it is better to hide subcommand options at the top-level.
59
+ # User will see the optoins once they click into the subcommand.
60
+ it "#options" do
61
+ expect(page.options).to include("")
62
+ end
63
+
64
+ it "#description" do
65
+ expect(page.description).to include("Examples")
66
+ end
67
+
68
+ it "#subcommand_list" do
69
+ expect(page.doc).to include("# Subcommands")
70
+ # puts page.subcommand_list # uncomment to see generated list for debugging
71
+ end
72
+
73
+ it "#doc" do
74
+ expect(page.doc).to include("# Summary")
75
+ # puts page.doc # uncomment to see generated page for debugging
76
+ end
77
+ end
78
+
79
+ ################
80
+ # rest are edge cases
81
+ context "summary" do
82
+ let(:command) { "summary" }
83
+
84
+ # empty options
85
+ it "#options" do
86
+ expect(page.options).to eq ""
87
+ end
88
+
89
+ # empty description
90
+ it "#description" do
91
+ expect(page.description).to eq ""
92
+ end
93
+
94
+ it "#doc" do
95
+ expect(page.doc).to include("# Summary")
96
+ # puts page.doc # uncomment to see generated page for debugging
97
+ end
98
+ end
99
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lono
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-23 00:00:00.000000000 Z
11
+ date: 2018-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -284,6 +284,7 @@ executables:
284
284
  extensions: []
285
285
  extra_rdoc_files: []
286
286
  files:
287
+ - ".circleci/bin/commit_docs.sh"
287
288
  - ".circleci/config.yml"
288
289
  - ".gitignore"
289
290
  - ".gitmodules"
@@ -328,25 +329,29 @@ files:
328
329
  - lib/lono/help/completion.md
329
330
  - lib/lono/help/completion_script.md
330
331
  - lib/lono/help/generate.md
331
- - lib/lono/help/hello.md
332
332
  - lib/lono/help/import.md
333
- - lib/lono/help/inspect.md
334
- - lib/lono/help/inspect/depends.md
335
- - lib/lono/help/inspect/summary.md
336
333
  - lib/lono/help/new.md
337
334
  - lib/lono/help/param.md
338
335
  - lib/lono/help/param/generate.md
339
336
  - lib/lono/help/script/build.md
340
337
  - lib/lono/help/script/upload.md
338
+ - lib/lono/help/summary.md
341
339
  - lib/lono/help/template.md
342
340
  - lib/lono/help/template/bashify.md
343
341
  - lib/lono/help/template/generate.md
342
+ - lib/lono/help/upgrade4.md
344
343
  - lib/lono/help/user_data.md
344
+ - lib/lono/help/xgraph.md
345
345
  - lib/lono/importer.rb
346
346
  - lib/lono/inspector.rb
347
347
  - lib/lono/inspector/base.rb
348
348
  - lib/lono/inspector/graph.rb
349
349
  - lib/lono/inspector/summary.rb
350
+ - lib/lono/markdown.rb
351
+ - lib/lono/markdown/creator.rb
352
+ - lib/lono/markdown/index.rb
353
+ - lib/lono/markdown/page.rb
354
+ - lib/lono/markdown/shell.rb
350
355
  - lib/lono/new.rb
351
356
  - lib/lono/new/helper.rb
352
357
  - lib/lono/new/message.rb
@@ -432,6 +437,7 @@ files:
432
437
  - spec/lib/lono/cli_spec.rb
433
438
  - spec/lib/lono/completion_spec.rb
434
439
  - spec/lib/lono/inspect_spec.rb
440
+ - spec/lib/lono/markdown_spec.rb
435
441
  - spec/lib/lono/param/generator_spec.rb
436
442
  - spec/lib/lono/param_spec.rb
437
443
  - spec/lib/lono/setting_spec.rb
@@ -505,6 +511,7 @@ test_files:
505
511
  - spec/lib/lono/cli_spec.rb
506
512
  - spec/lib/lono/completion_spec.rb
507
513
  - spec/lib/lono/inspect_spec.rb
514
+ - spec/lib/lono/markdown_spec.rb
508
515
  - spec/lib/lono/param/generator_spec.rb
509
516
  - spec/lib/lono/param_spec.rb
510
517
  - spec/lib/lono/setting_spec.rb
@@ -1,5 +0,0 @@
1
- Examples:
2
-
3
- lono hello
4
- lono hello NAME
5
- lono hello NAME --from me
@@ -1,3 +0,0 @@
1
- Example:
2
-
3
- lono inspect depends my-stack
@@ -1,3 +0,0 @@
1
- Example:
2
-
3
- lono inspect summary my-stack
@@ -1,4 +0,0 @@
1
- Examples:
2
-
3
- lono inspect depends my-stack
4
- lono inspect summary my-stack