Skip to content

Commit

Permalink
Fix etc
Browse files Browse the repository at this point in the history
  • Loading branch information
Genki Sugawara committed May 10, 2016
1 parent d734131 commit ac7a2c5
Show file tree
Hide file tree
Showing 10 changed files with 51 additions and 2 deletions.
2 changes: 2 additions & 0 deletions bin/meteorlog
Expand Up @@ -34,6 +34,8 @@ ARGV.options do |opt|
opt.on('', '--skip-delete-group') { options[:skip_delete_group] = true }
opt.on('-e', '--export') { mode = :export }
opt.on('-o', '--output FILE') {|v| output_file = v }
opt.on('', '--include REGEXP') {|v| options[:include] = Regexp.new(v) }
opt.on('', '--exclude REGEXP') {|v| options[:exclude] = Regexp.new(v) }
opt.on('' , '--no-color') { options[:color] = false }
opt.on('' , '--debug') { options[:debug] = true }
opt.parse!
Expand Down
1 change: 1 addition & 0 deletions lib/meteorlog.rb
Expand Up @@ -10,6 +10,7 @@ module Meteorlog; end
require 'term/ansicolor'

require 'meteorlog/logger'
require 'meteorlog/template_helper'
require 'meteorlog/utils'
require 'meteorlog/client'
require 'meteorlog/dsl'
Expand Down
3 changes: 3 additions & 0 deletions lib/meteorlog/client.rb
Expand Up @@ -25,6 +25,7 @@ def walk(file)
aws_log_groups = collect_to_hash(aws.log_groups, :log_group_name)

dsl_log_groups.each do |log_group_name, dsl_log_group|
next unless Meteorlog::Utils.matched?(log_group_name, @options[:include], @options[:exclude])
aws_log_group = aws_log_groups[log_group_name]

unless aws_log_group
Expand All @@ -34,12 +35,14 @@ def walk(file)
end

dsl_log_groups.each do |log_group_name, dsl_log_group|
next unless Meteorlog::Utils.matched?(log_group_name, @options[:include], @options[:exclude])
aws_log_group = aws_log_groups.delete(log_group_name)
walk_log_group(dsl_log_group, aws_log_group)
end

unless @options[:skip_delete_group]
aws_log_groups.each do |log_group_name, aws_log_group|
next unless Meteorlog::Utils.matched?(log_group_name, @options[:include], @options[:exclude])
aws_log_group.delete
end
end
Expand Down
7 changes: 6 additions & 1 deletion lib/meteorlog/dsl/context.rb
@@ -1,5 +1,6 @@
class Meteorlog::DSL::Context
include Meteorlog::DSL::Validator
include Meteorlog::TemplateHelper

class << self
def eval(dsl, path, opts = {})
Expand All @@ -21,8 +22,12 @@ def initialize(path, options = {}, &block)

private

def template(name, &block)
@context.templates[name.to_s] = block
end

def require(file)
logsfile = File.expand_path(File.join(File.dirname(@path), file))
logsfile = (file =~ %r|\A/|) ? file : File.expand_path(File.join(File.dirname(@path), file))

if File.exist?(logsfile)
instance_eval(File.read(logsfile), logsfile)
Expand Down
1 change: 1 addition & 0 deletions lib/meteorlog/dsl/context/log_group.rb
@@ -1,5 +1,6 @@
class Meteorlog::DSL::Context::LogGroup
include Meteorlog::DSL::Validator
include Meteorlog::TemplateHelper

attr_reader :result

Expand Down
1 change: 1 addition & 0 deletions lib/meteorlog/dsl/context/metric_filter.rb
@@ -1,5 +1,6 @@
class Meteorlog::DSL::Context::MetricFilter
include Meteorlog::DSL::Validator
include Meteorlog::TemplateHelper

attr_reader :result

Expand Down
3 changes: 3 additions & 0 deletions lib/meteorlog/exporter.rb
Expand Up @@ -26,6 +26,9 @@ def export

def export_log_graoup(log_group, result)
log_group_name = log_group.log_group_name

return unless Meteorlog::Utils.matched?(log_group_name, @options[:include], @options[:exclude])

log_streams = @cloud_watch_logs.describe_log_streams(
:log_group_name => log_group_name).log_streams
metric_filters = @cloud_watch_logs.describe_metric_filters(
Expand Down
18 changes: 18 additions & 0 deletions lib/meteorlog/template_helper.rb
@@ -0,0 +1,18 @@
module Meteorlog::TemplateHelper
def include_template(template_name, context = {})
tmplt = @context.templates[template_name.to_s]

unless tmplt
raise "Template `#{template_name}` is not defined"
end

context_orig = @context
@context = @context.merge(context)
instance_eval(&tmplt)
@context = context_orig
end

def context
@context
end
end
15 changes: 15 additions & 0 deletions lib/meteorlog/utils.rb
@@ -1,4 +1,19 @@
module Meteorlog::Utils
def matched?(name, include_r, exclude_r)
result = true

if exclude_r
result &&= name !~ exclude_r
end

if include_r
result &&= name =~ include_r
end

result
end
module_function :matched?

def collect_to_hash(collection, *key_attrs)
opts = key_attrs.last.kind_of?(Hash) ? key_attrs.pop : {}
hash = {}
Expand Down
2 changes: 1 addition & 1 deletion lib/meteorlog/version.rb
@@ -1,3 +1,3 @@
module Meteorlog
VERSION = '0.0.5'
VERSION = '0.1.0'
end

0 comments on commit ac7a2c5

Please sign in to comment.