Sha256: 2941afac0dfc2182abb7e1c91728401b52134ad9fdc79042a43cce95ea65f64e

Contents?: true

Size: 1.72 KB

Versions: 1

Compression:

Stored size: 1.72 KB

Contents

#! /usr/bin/env ruby
# -*- encoding: UTF-8 -*-
require 'thor'
require 'json'
require 'yaml'

module Pingdom
  module Cli
    class CLI < Thor
      include Thor::Actions
      map '-l' => :checks
      class_option :config, aliases: '--config', type: :string, default: "#{ENV['HOME']}/.pingdomrc", desc: 'config file'
      def initialize(args = [], options = {}, config = {})
        super(args, options, config)
        @global_options = config[:shell].base.options
        @config = YAML.load_file(@global_options['config'])
        @core = Core.new(@config)
      end

      desc "config", "config"
      def config
        puts @config.to_json
      end

      desc "checks", "checks"
      def checks
        puts @core.checks.to_json
      end

      desc "actions", "actions"
      def actions
        puts @core.actions.to_json
      end

      desc "contacts", "contacts"
      def contacts
        puts @core.contacts.to_json
      end

      desc "probes", "probes"
      def probes
        puts @core.probes.to_json
      end

      desc "reference", "reference"
      def reference
        puts @core.reference.to_json
      end

      desc "reports_public", "reports_public"
      def reports_public
        puts @core.reports_public.to_json
      end

      desc "settings", "settings"
      def settings
        puts @core.settings.to_json
      end

      desc "pause", "pause"
      def pause
        puts @core.update({ paused: true })
      end

      desc "unpause", "unpause"
      def unpause
        puts @core.update({ paused: false })
      end

      desc "update", "update"
      option :params, type: :hash, default: {}, desc: 'params'
      def update
        puts @core.update(options['params'])
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pingdom-cli-0.2.0 lib/pingdom/cli/cli.rb