class Souschef::Runner
Runner
library that does all the hard work
Attributes
opts[RW]
Public Class Methods
new(opts)
click to toggle source
# File lib/souschef/runner.rb, line 6 def initialize(opts) @opts = opts adjust_cb_path load_configuration unless @opts[:configure] end
Public Instance Methods
run()
click to toggle source
Public - Run Souschef
Returns nil
# File lib/souschef/runner.rb, line 15 def run Souschef::Print.header "Using Souschef profile: #{opts[:profile]}" if @opts[:scaffold] Souschef::Scaffold.new(@opts).start elsif @opts[:configure] verify_configure_input Souschef::Configure::Yaml.new(@opts) else Souschef::Print.header "Starting cookbook creation...\n" cookbook_runlist end end
Private Instance Methods
adjust_cb_path()
click to toggle source
Private - Adjust cookbook path
Return nil
# File lib/souschef/runner.rb, line 89 def adjust_cb_path if @opts[:path] @opts[path] = File.join(Dir.pwd, @opts[:path]) else @opts[:path] = Dir.pwd end end
cookbook_runlist()
click to toggle source
Private - Create cookbook run list
Returns nil
# File lib/souschef/runner.rb, line 34 def cookbook_runlist verify_cookbook_creation Souschef::Print.header 'Berkshelf configuration' Souschef::Berkshelf.new(@opts).berks_create Souschef::Print.header 'Configure gemfile' Souschef::Gemfile.new(@opts).write Souschef::Print.header 'Create essential template files' Souschef::Template.run(@opts) # Mock Scaffold to generate default recipe and tests Souschef::Print.header 'Create default recipe and tests' Souschef::Scaffold.new(path: @opts[:path], recipe: 'default', profile: @opts[:profile], force: true, verbose: @opts[:verbose]).start Souschef::Print.header 'Testkitchen configuration' Souschef::Testkitchen.new(@opts).setup Souschef::Print.header "Don't forget to run bundle install!" end
load_configuration()
click to toggle source
Private - Load contents of .souschef.yml configuration
Returns nil
# File lib/souschef/runner.rb, line 100 def load_configuration @opts[:souschef] = Souschef::Config.read[@opts[:profile]] end
verify_configure_input()
click to toggle source
Private - Verify @opts values
Return nil
# File lib/souschef/runner.rb, line 61 def verify_configure_input if @opts[:maintainer_given] || @opts[:maintainer_email_given] || @opts[:license_given] unless @opts[:configure] fail 'Please check Souschef options, you are missing --configure' end else fail 'Please check if you have all options for configuration selected' end end
verify_cookbook_creation()
click to toggle source
Private - Verify cookbook creation options
Return nil
# File lib/souschef/runner.rb, line 75 def verify_cookbook_creation fail 'You need to specify the cookbook name' if @opts[:cookbook].nil? end
verify_scaffold_input()
click to toggle source
Private - Verify Scaffold
input
Return nil
# File lib/souschef/runner.rb, line 82 def verify_scaffold_input fail 'Recipe name is missing for scaffold creation' if @opts[:recipe].nil? end