Sha256: 36f668326c685a8a6ba40c17ca2dd25a57e259f24a538165a0e3e1c74bdef7b0

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module Command
  class SetupApp < Base
    NAME = "setup-app"
    OPTIONS = [
      app_option(required: true)
    ].freeze
    DESCRIPTION = "Creates an app and all its workloads"
    LONG_DESCRIPTION = <<~DESC
      - Creates an app and all its workloads
      - Specify the templates for the app and workloads through `setup_app_templates` in the `.controlplane/controlplane.yml` file
      - This should only be used for temporary apps like review apps, never for persistent apps like production (to update workloads for those, use 'cpl apply-template' instead)
    DESC

    def call
      templates = config[:setup_app_templates]

      app = cp.fetch_gvc
      if app
        raise "App '#{config.app}' already exists. If you want to update this app, " \
              "either run 'cpl delete -a #{config.app}' and then re-run this command, " \
              "or run 'cpl apply-template #{templates.join(' ')} -a #{config.app}'."
      end

      Cpl::Cli.start(["apply-template", *templates, "-a", config.app])
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cpl-1.3.0 lib/command/setup_app.rb
cpl-1.2.0 lib/command/setup_app.rb