# frozen_string_literal: true module Meroku # The CLI is a class responsible of handling all the command line interface # logic. class CLI include Meroku::Shared include Meroku::Api attr_reader :options def initialize @options = {} end def run(args = ARGV) @options = Options.new.parse(args) act_on_options rescue Meroku::Error => e puts "Error: #{e.message}" return 2 end private def act_on_options if @options[:meroku_secret] Meroku::Shared.secrets.meroku_secret = @options[:meroku_secret] end Node.new if @options[:spawn] User.login(@options[:email], @options[:password]) if @options[:login] User.logout if @options[:logout] Meroku::Aws.terminate_all(tag: 'node') if @options[:despawn] true end end end