Sha256: 80b1932ab1418b6aea1ee22b987300e166bfa88bd3ef5f52f7ff1939ccaa2f8e

Contents?: true

Size: 1.3 KB

Versions: 13

Compression:

Stored size: 1.3 KB

Contents

require 'optparse'
require 'vx/common/amqp_setup'
require 'vx/common'

module Vx
  module Worker
    class CLI

      include Helper::Config
      include Helper::Logger
      include Common::EnvFile

      def initialize
        @options = {}
        parse!
        Worker.initialize!
      end

      def run
        trap('INT') {
          Thread.new do
            Vx::Common::AMQP.shutdown
          end.join
        }

        Vx::Common::AMQP::Supervisor::Threaded.build(
          Vx::Worker::JobsConsumer => config.workers,
        ).run
      end

      private

        def parse!
          OptionParser.new do |opts|
            opts.banner = "Usage: vx-worker [options]"
            opts.on("-w", "--workers NUM", "Number of workers, default 1") do |v|
              @options[:workers] = v.to_i
            end
            opts.on("-p", "--path PATH", "Working directory, default current directory") do |v|
              @options[:path_prefix] = v.to_s
            end
            opts.on("-c", "--config FILE", "Path to configuration file, default /etc/vexor/ci") do |v|
              @options[:config] = v
            end
          end.parse!

          read_env_file @options.delete(:config)

          @options.each_pair do |k,v|
            config.public_send("#{k}=", v)
          end
        end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
vx-worker-0.3.0.pre0 lib/vx/worker/cli.rb
vx-worker-0.2.1 lib/vx/worker/cli.rb
vx-worker-0.2.0.pre38 lib/vx/worker/cli.rb
vx-worker-0.2.0.pre37 lib/vx/worker/cli.rb
vx-worker-0.2.0.pre36 lib/vx/worker/cli.rb
vx-worker-0.2.0.pre35 lib/vx/worker/cli.rb
vx-worker-0.2.0.pre34 lib/vx/worker/cli.rb
vx-worker-0.2.0.pre33 lib/vx/worker/cli.rb
vx-worker-0.2.0.pre32 lib/vx/worker/cli.rb
vx-worker-0.2.0.pre31 lib/vx/worker/cli.rb
vx-worker-0.2.0.pre30 lib/vx/worker/cli.rb
vx-worker-0.2.0.pre29 lib/vx/worker/cli.rb
vx-worker-0.2.0.pre28 lib/vx/worker/cli.rb