Sha256: d5708005460ea47c25c89ee913feff1e96b2228135be3fbd73858b16b5359827

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 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)
      rescue FileNotFound => e
        $stdout.puts(e.message)
      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 ServerNotFound => 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 ServerNotFound => e
      $stdout.puts(e.message)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rmdd-0.1.0 lib/rmd/cli.rb