Sha256: c2ff4e3e807752b3221854d36bc880d320e6d3cd255731dc42ddb7a63c7366eb

Contents?: true

Size: 1.95 KB

Versions: 3

Compression:

Stored size: 1.95 KB

Contents

require 'logger'
require 'rack'

require_relative 'app'
require_relative 'mjolnir'
require_relative 'metadata'


module StacksOnDeck

  # StacksOnDeck's entrypoint.
  class Main < Mjolnir


    desc 'version', 'Echo the application version'
    def version
      puts VERSION
    end


    desc 'art', 'View the application art'
    def art
      puts "\n%s\n" % ART
    end


    desc 'server', 'Start application web server'
    option :bind, \
      type: :string,
      aliases: %w[ -b ],
      desc: 'Set Sinatra interface',
      default: '0.0.0.0'
    option :port, \
      type: :numeric,
      aliases: %w[ -p ],
      desc: 'Set Sinatra port',
      default: 4567
    option :environment, \
      type: :string,
      aliases: %w[ -e ],
      desc: 'Set Sinatra environment',
      default: 'development'
    option :config, \
      type: :string,
      aliases: %w[ -c ],
      desc: 'Location of Chef configuration',
      default: '/etc/chef/knife.rb'
    option :username, \
      type: :string,
      aliases: %w[ -u ],
      desc: 'Username value for Rundeck node',
      default: '${job.username}'
    option :refresh, \
      type: :numeric,
      aliases: %w[ -r ],
      desc: 'Refresh interval in seconds',
      default: 900
    include_common_options
    def server
      App.set :log, log
      App.set :bind, options.bind
      App.set :port, options.port
      App.set :config, options.config
      App.set :refresh, options.refresh
      App.set :username, options.username
      App.set :environment, options.environment

      if options.debug?
        App.set :raise_errors, true
        App.set :dump_errors, true
        App.set :show_exceptions, true
        App.set :logging, ::Logger::DEBUG
      end

      Celluloid.logger = nil
      Thread.abort_on_exception = false

      if options.trace?
        Celluloid.logger = log
        Thread.abort_on_exception = true
      end

      log.info event: 'server', options: options
      App.run!
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
stacksondeck-1.1.2 lib/stacksondeck/main.rb
stacksondeck-1.1.1 lib/stacksondeck/main.rb
stacksondeck-1.1.0 lib/stacksondeck/main.rb