Sha256: b6bbe8ff2de6d1b615dec2c04b273bf7cd1c0131e2410fdac4976294b64d6031
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
require 'kitchen' require 'kitchen/cli' module Cocina class CLI attr_reader :config, :instances, :collection, :dependencies attr_reader :primary_instance, :primary_dependencies, :logger def initialize(target) super() @dependencies = [] @config = Cocina::Config.new('Cocinafile') @logger = Kitchen::Logger.new( stdout: STDOUT, color: :white, progname: 'Cocina' ) @primary_instance = instance(target) @primary_dependencies = primary_instance.dependencies end def run log_banner "Running for: #{primary_instance.name}" prepare_dependencies converge_dependencies primary_instance.verify cleanup end def instance(id) @config[id] end def prepare_dependencies primary_dependencies.each do |dep| @dependencies.concat instance(dep).dependencies @dependencies << dep end end def converge_dependencies logger.info "Dependencies: #{dependencies}" dependencies.each {|dep| converge_dependency dep } end def converge_dependency(dep) log_banner "Converging <#{dep}>" instance(dep).converge end def cleanup log_banner "Cleaning up all dependencies" destroy_dependencies primary_instance.destroy nil end def destroy_dependencies dependencies.each do |dep| logger.info "Destroying #{dep}" instance(dep).destroy end end def log_banner(msg) logger.banner "#{msg}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cocina-0.1.3 | lib/cocina/cli.rb |