Sha256: df1eecc8bc88114f8e2abadba220c13c19083f3cf5293642894a7e8a01218668

Contents?: true

Size: 1.03 KB

Versions: 3

Compression:

Stored size: 1.03 KB

Contents

require 'thor'
require 'yaml'

module Rmd
  class FileNotFound < StandardError; end

  class Cli < Thor
    CONFIG_PATH = './creds.yml'

    include Thor::Actions

    class << self
      def load_config
        fail(FileNotFound, 'Creds file not found. Ask DucLe for it') unless File.file?(CONFIG_PATH)
        config = YAML.load_file(File.expand_path(CONFIG_PATH))
        Configure.set(config)
      end
    end

    desc 'deploy', 'Deploy to a server'
    method_option :server, aliases: '-s', desc: 'Server name', type: :string, required: true
    def deploy
      Cli.load_config
      DeployService.deploy(options[:server])
    rescue Exception => e
      $stdout.puts(e.message)
    end

    desc 'restart', 'Restart a server. Please note that the latest image will be pulled to deploy to servers'
    method_option :server, aliases: '-s', desc: 'Server name', type: :string, required: true
    def restart
      Cli.load_config
      DeployService.restart(options[:server])
    rescue Exception => e
      $stdout.puts(e.message)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rmdd-0.1.3 lib/rmd/cli.rb
rmdd-0.1.2 lib/rmd/cli.rb
rmdd-0.1.1 lib/rmd/cli.rb