Sha256: 474541c745e81014cf1035821ca2203828bdcf52d2f03914382ec74fd23ea826
Contents?: true
Size: 1.74 KB
Versions: 8
Compression:
Stored size: 1.74 KB
Contents
require 'shellwords' module Aptible module CLI module Subcommands module Config # rubocop:disable MethodLength # rubocop:disable CyclomaticComplexity def self.included(thor) thor.class_eval do include Helpers::Operation include Helpers::App desc 'config', "Print an app's current configuration" option :app def config app = ensure_app(options) config = app.current_configuration env = config ? config.env : nil puts formatted_config(env || {}) end desc 'config:add', 'Add an ENV variable to an app' option :app define_method 'config:add' do |*args| # FIXME: define_method - ?! Seriously, WTF Thor. app = ensure_app(options) env = Hash[args.map { |arg| arg.split('=', 2) }] operation = app.create_operation(type: 'configure', env: env) poll_for_success(operation) end desc 'config:rm', 'Remove an ENV variable from an app' option :app define_method 'config:rm' do |*args| # FIXME: define_method - ?! Seriously, WTF Thor. app = ensure_app(options) env = Hash[args.map { |arg| [arg, ''] }] operation = app.create_operation(type: 'configure', env: env) poll_for_success(operation) end private def formatted_config(env) env.map { |k, v| "#{k}=#{Shellwords.escape(v)}" }.join("\n") end end end # rubocop:enable CyclomaticComplexity # rubocop:enable MethodLength end end end end
Version data entries
8 entries across 8 versions & 1 rubygems