Sha256: 2857a7e466dbecf4e755bd18e8a1281940bb468823ee797fa42a5c4ff613d029

Contents?: true

Size: 1.6 KB

Versions: 4

Compression:

Stored size: 1.6 KB

Contents

# frozen_string_literal: true

require 'thor'
require_relative '../pulumi'
require_relative '../logger'

module Bauble
  module Cli
    module Commands
      # Preview command
      module Preview
        class << self
          def included(thor)
            thor.class_eval do
              desc 'preview', 'Preview the application'
              method_option :stack, type: :string, desc: 'The stack to preview', aliases: '-s'

              def preview
                Logger.logo

                # check for any stacks
                raise 'No stacks found' if @app.stacks.empty?

                # check for multiple stacks
                if @app.stacks.length > 1 && options[:stack].nil?
                  Logger.error 'Must provide a stack when multiple are defined'
                  exit(1)
                end

                # set up stack
                stack_name = options[:stack] || @app.stacks.first.name
                @app.change_current_stack(stack_name)

                # bundle assets
                Logger.block_log 'Bundling assets...'
                Logger.nl
                @app.bundle

                # write template file
                pulumi.create_pulumi_yml(@app.template)

                # initialize pulumi
                pulumi.init!

                # create or select stack
                Logger.block_log('Running Pulumi preview...')
                pulumi.create_or_select_stack(stack_name)

                # run preview
                pulumi.preview
                Logger.log "Preview complete\n"
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
bauble_core-0.5.0 lib/bauble/cli/commands/preview.rb
bauble_core-0.4.0 lib/bauble/cli/commands/preview.rb
bauble_core-0.3.0 lib/bauble/cli/commands/preview.rb
bauble_core-0.2.0 lib/bauble/cli/commands/preview.rb