Sha256: 398edd49af5814023d16e7f2daa3f24926c49ef1fe35ecb5ea2c6e7f276c681f

Contents?: true

Size: 1.42 KB

Versions: 1

Compression:

Stored size: 1.42 KB

Contents

require 'rubygems'
gem 'trinidad_jars'
require 'trinidad/extensions'
require 'trinidad/jars'

require File.expand_path('../../trinidad-libs/akuma', __FILE__)
require File.expand_path('../../trinidad-libs/trinidad-daemon-extension', __FILE__)

module Trinidad
  module Extensions
    module Daemon
      VERSION = '0.1.3'
    end

    class DaemonServerExtension < ServerExtension
      def configure(tomcat)
        org.jruby.trinidad.TrinidadDaemon.new(tomcat, @options[:pid_file], logger_options)
      end

      def override_tomcat?; true; end

      def logger_options
        log = @options[:log] || {}
        log[:file] ||= 'log/trinidad.log'

        level = log[:level] || 'INFO'
        unless %w{ALL CONFIG FINE FINER FINEST INFO OFF SEVERE WARNING}.include?(level)
          puts "Invalid log level #{level}, using default: INFO"
          level = 'INFO'
        end
        log[:level] = level
        log = Hash[log.map{|k, v| [k.to_s, v]}]

        Java::java.util.HashMap.new(log)
      end
    end

    class DaemonOptionsExtension < OptionsExtension
      def configure(parser, default_options)
        parser.on('-d', '--daemonize [PID_FILE]', 'run Trinidad as a daemon, pid_file by default is ENV[$TMPDIR]/trinidad.pid') do |pid|
          extensions = default_options[:extensions] || {}
          extensions[:daemon] = {:pid_file => pid}
          default_options[:extensions] = extensions
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
trinidad_daemon_extension-0.1.3 lib/trinidad_daemon_extension.rb