Sha256: c4d410e4702d01ebbbbbd6558ee9392c7ed529f0f95b49f108e23e7d420ca2dc
Contents?: true
Size: 1.54 KB
Versions: 3
Compression:
Stored size: 1.54 KB
Contents
# frozen_string_literal: true require_relative 'config' require 'thor' require 'json' require_relative 'commands/preview' require_relative 'commands/up' require_relative 'commands/destroy' require_relative 'pulumi' require_relative '../application' module Bauble module Cli # Bauble CLI class BaubleCli < Thor include Commands::Preview include Commands::Up include Commands::Destroy attr_accessor :app, :config def initialize(*args) super require_entrypoint @app = ObjectSpace.each_object(Bauble::Application).first raise 'No App instance found' unless @app build_config end def self.exit_on_failure? true end private def pulumi @pulumi ||= Bauble::Cli::Pulumi.new(config: config) end def build_config @config = Config.configure do |c| c.app_name = @app.name c.skip_gem_layer = @app.skip_gem_layer end @app.config = @config end def write_stack_template(stack) create_directory # TODO: this can probably be put into something smarter, maube a file writing class? File.write("#{config.pulumi_home}/Pulumi.#{stack.name}.yaml", stack.template) end def create_directory FileUtils.mkdir_p(config.pulumi_home) end def bauble_json @bauble_json ||= JSON.parse(File.read('bauble.json')) end def require_entrypoint Kernel.require "#{Dir.pwd}/#{bauble_json['entrypoint']}" end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
bauble_core-0.4.0 | lib/bauble/cli/cli.rb |
bauble_core-0.3.0 | lib/bauble/cli/cli.rb |
bauble_core-0.2.0 | lib/bauble/cli/cli.rb |