Sha256: a99656ac152726f949951a8e8804ee17f93229c0ecf0e0668afc11ad6cdefadb

Contents?: true

Size: 1.99 KB

Versions: 18

Compression:

Stored size: 1.99 KB

Contents

require 'thor'
require 'sinatra/base'

require_relative 'app'
require_relative 'metadata'


module OpsAsk
  class Main < Thor
    desc 'art', 'Show the application art'
    def art
      max_line_len = OpsAsk::ART.lines.sort_by { |l| l.length }.last.length
      description = "OpsAsk #{OpsAsk::VERSION} / #{OpsAsk::SUMMARY} / #{OpsAsk::AUTHOR} (#{OpsAsk::EMAIL})"
      puts
      puts OpsAsk::ART
      puts description.center(max_line_len)
      puts
    end

    desc 'version', 'Show the application version'
    def version
      puts OpsAsk::VERSION
    end

    desc 'server', 'Start application web server'
    option :config, \
      type: :string,
      aliases: %w[ -c ],
      desc: 'Path to configuration file',
      required: true
    option :port, \
      type: :numeric,
      aliases: %w[ -p ],
      desc: 'Set Sinatra port',
      default: 3000
    option :environment, \
      type: :string,
      aliases: %w[ -e ],
      desc: 'Set Sinatra environment',
      default: 'development'
    option :bind, \
      type: :string,
      aliases: %w[ -b ],
      desc: 'Set Sinatra interface',
      default: '0.0.0.0'
    def server
      config = {
        ops_group: 'change-network-operations',
        agile_board: '169', # Operations
        assignee: 'denimcores',
        jira_user: nil,
        jira_pass: nil,
        jira_url: 'http://jira.bluejeansnet.com',
        queue_size: 10,
        cutoff_hour: 18, # 6pm
        project_key: 'INF',
        project_name: 'Infrastructure',
        issue_type: 'Task',
        version: 'Un-targeted',
        jira_private_key: 'opsask.pem',
        jira_consumer_key: 'opsask-test',
        app_version: OpsAsk::VERSION,
        require_label: nil
      }

      if options[:config]
        config.merge! JSON::parse(File.read(options[:config]), symbolize_names: true)
      end

      App.run! \
        config: config,
        bind: options[:bind],
        port: options[:port],
        environment: options[:environment],
        raise_errors: true
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
opsask-2.3.3 lib/opsask/main.rb
opsask-2.3.2 lib/opsask/main.rb
opsask-2.3.1 lib/opsask/main.rb
opsask-2.3.0 lib/opsask/main.rb
opsask-2.2.3 lib/opsask/main.rb
opsask-2.2.2 lib/opsask/main.rb
opsask-2.2.1 lib/opsask/main.rb
opsask-2.2.0 lib/opsask/main.rb
opsask-2.1.9 lib/opsask/main.rb
opsask-2.1.8 lib/opsask/main.rb
opsask-2.1.7 lib/opsask/main.rb
opsask-2.1.6 lib/opsask/main.rb
opsask-2.1.5 lib/opsask/main.rb
opsask-2.1.4 lib/opsask/main.rb
opsask-2.1.3 lib/opsask/main.rb
opsask-2.1.2 lib/opsask/main.rb
opsask-2.1.1 lib/opsask/main.rb
opsask-2.1.0 lib/opsask/main.rb