cawcaw 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.rspec +1 -0
- data/Gemfile +23 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +39 -0
- data/Rakefile +65 -0
- data/VERSION +1 -0
- data/bin/cawcaw +19 -0
- data/lib/cawcaw.rb +41 -0
- data/lib/cawcaw/command/hadoop.rb +17 -0
- data/lib/cawcaw/command/hadoop/dfs.rb +80 -0
- data/lib/cawcaw/command/rabbitmq.rb +17 -0
- data/lib/cawcaw/command/rabbitmq/queue_count.rb +90 -0
- data/lib/cawcaw/core/common.rb +65 -0
- data/spec/lib/cawcaw_spec.rb +6 -0
- data/spec/spec_helper.rb +40 -0
- metadata +211 -0
data/.document
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
# Add dependencies required to use your gem here.
|
3
|
+
# Example:
|
4
|
+
# gem "activesupport", ">= 2.3.5"
|
5
|
+
|
6
|
+
gem "bunnish", ">= 0.1.0"
|
7
|
+
|
8
|
+
# Add dependencies to develop your gem here.
|
9
|
+
# Include everything needed to run rake, tests, features, etc.
|
10
|
+
group :development do
|
11
|
+
gem "rspec", ">= 2.8.0"
|
12
|
+
gem "rdoc", "~> 3.12"
|
13
|
+
gem "bundler", ">= 1.0.0"
|
14
|
+
gem "jeweler", "~> 1.8.4"
|
15
|
+
if RUBY_VERSION <= '1.8.7'
|
16
|
+
gem "rcov", ">= 0"
|
17
|
+
else
|
18
|
+
gem "simplecov", ">= 0"
|
19
|
+
gem "simplecov-rcov", ">= 0"
|
20
|
+
end
|
21
|
+
gem "ci_reporter", ">= 1.7.0"
|
22
|
+
gem "flog", ">= 3.2.0"
|
23
|
+
end
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2012 Kenji Hara
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
= Cawcaw
|
2
|
+
|
3
|
+
Cawcaw supports munin plugin for Hadoop/RabbitMQ.
|
4
|
+
|
5
|
+
== Supported Ruby versions and implementations
|
6
|
+
Cawcaw should work identically on:
|
7
|
+
|
8
|
+
* Ruby 1.9.3
|
9
|
+
* Ruby 1.9.2
|
10
|
+
* Ruby 1.8.7
|
11
|
+
|
12
|
+
== Install
|
13
|
+
|
14
|
+
You can install cawcaw by gem.
|
15
|
+
gem install cawcaw
|
16
|
+
|
17
|
+
== Usage
|
18
|
+
|
19
|
+
=== Draw RabbitMQ queue message count graph
|
20
|
+
$ cawcaw rabbitmq queue-count <queue-name>
|
21
|
+
|
22
|
+
=== Draw Hadoop HDFS size graph
|
23
|
+
$ cawcaw hadoop dfs <hdfs-path>
|
24
|
+
|
25
|
+
== Contributing to cawcaw
|
26
|
+
|
27
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
28
|
+
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
|
29
|
+
* Fork the project.
|
30
|
+
* Start a feature/bugfix branch.
|
31
|
+
* Commit and push until you are happy with your contribution.
|
32
|
+
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
33
|
+
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
34
|
+
|
35
|
+
== Copyright
|
36
|
+
|
37
|
+
Copyright (c) 2012 Kenji Hara. See LICENSE.txt for
|
38
|
+
further details.
|
39
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require "rubygems"
|
4
|
+
require "bundler"
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
12
|
+
require "rake"
|
13
|
+
|
14
|
+
require "jeweler"
|
15
|
+
Jeweler::Tasks.new do |gem|
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
+
gem.name = "cawcaw"
|
18
|
+
gem.homepage = "http://github.com/haracane/cawcaw"
|
19
|
+
gem.license = "MIT"
|
20
|
+
gem.summary = "cawcaw RubyGem"
|
21
|
+
gem.description = "cawcaw RubyGem"
|
22
|
+
gem.email = "haracane@gmail.com"
|
23
|
+
gem.authors = ["Kenji Hara"]
|
24
|
+
# dependencies defined in Gemfile
|
25
|
+
end
|
26
|
+
Jeweler::RubygemsDotOrgTasks.new
|
27
|
+
|
28
|
+
require "rspec/core"
|
29
|
+
require "rspec/core/rake_task"
|
30
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
31
|
+
spec.pattern = FileList["spec/**/*_spec.rb"]
|
32
|
+
end
|
33
|
+
|
34
|
+
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
35
|
+
spec.pattern = "spec/**/*_spec.rb"
|
36
|
+
spec.rcov = true
|
37
|
+
end
|
38
|
+
|
39
|
+
task :default => :spec
|
40
|
+
|
41
|
+
require "rdoc/task"
|
42
|
+
Rake::RDocTask.new do |rdoc|
|
43
|
+
version = File.exist?("VERSION") ? File.read("VERSION") : ""
|
44
|
+
|
45
|
+
rdoc.rdoc_dir = "rdoc"
|
46
|
+
rdoc.title = "cawcaw #{version}"
|
47
|
+
rdoc.rdoc_files.include("README*")
|
48
|
+
rdoc.rdoc_files.include("lib/**/*.rb")
|
49
|
+
end
|
50
|
+
|
51
|
+
require "ci/reporter/rake/rspec" # use this if you're using RSpec
|
52
|
+
|
53
|
+
if RUBY_VERSION <= '1.8.7'
|
54
|
+
require "rcov"
|
55
|
+
RSpec::Core::RakeTask.new("spec:rcov") do |t|
|
56
|
+
t.rcov = true
|
57
|
+
t.rspec_opts = ["-c"]
|
58
|
+
t.rcov_opts = ["-x", "spec"]
|
59
|
+
end
|
60
|
+
else
|
61
|
+
RSpec::Core::RakeTask.new("spec:rcov") do |t|
|
62
|
+
t.rspec_opts = ["-v"]
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.1
|
data/bin/cawcaw
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "cawcaw"
|
4
|
+
|
5
|
+
command = ARGV.shift
|
6
|
+
|
7
|
+
exit_code = 0
|
8
|
+
|
9
|
+
case command
|
10
|
+
when "hadoop"
|
11
|
+
exit_code = Cawcaw::Command::Hadoop.run(ARGV) || 0
|
12
|
+
when "rabbitmq"
|
13
|
+
exit_code = Cawcaw::Command::Rabbitmq.run(ARGV) || 0
|
14
|
+
else
|
15
|
+
STDERR.puts "invalid command: '#{command}'"
|
16
|
+
exit_code = 1
|
17
|
+
end
|
18
|
+
|
19
|
+
exit exit_code
|
data/lib/cawcaw.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
require "logger"
|
2
|
+
require "uri"
|
3
|
+
require "bunnish"
|
4
|
+
|
5
|
+
module Cawcaw
|
6
|
+
end
|
7
|
+
|
8
|
+
require "cawcaw/command/hadoop"
|
9
|
+
require "cawcaw/command/rabbitmq"
|
10
|
+
require "cawcaw/core/common"
|
11
|
+
|
12
|
+
module Cawcaw
|
13
|
+
def self.parse_opts(argv)
|
14
|
+
return Cawcaw::Core::Common.parse_opts(argv)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.logger
|
18
|
+
if @logger.nil?
|
19
|
+
@logger = (rails_logger || default_logger)
|
20
|
+
@logger.formatter = proc { |severity, datetime, progname, msg|
|
21
|
+
datetime.strftime("[%Y-%m-%d %H:%M:%S](#{severity})#{msg}\n")
|
22
|
+
}
|
23
|
+
end
|
24
|
+
return @logger
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.rails_logger
|
28
|
+
(defined?(Rails) && Rails.respond_to?(:logger) && Rails.logger) ||
|
29
|
+
(defined?(RAILS_DEFAULT_LOGGER) && RAILS_DEFAULT_LOGGER.respond_to?(:debug) && RAILS_DEFAULT_LOGGER)
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.default_logger
|
33
|
+
l = Logger.new(STDERR)
|
34
|
+
l.level = Logger::INFO
|
35
|
+
l
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.logger=(logger)
|
39
|
+
@logger = logger
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Cawcaw
|
2
|
+
module Command
|
3
|
+
module Hadoop
|
4
|
+
def self.run(argv, input_stream=$stdin, output_stream=$stdout)
|
5
|
+
command = argv.shift
|
6
|
+
case command
|
7
|
+
when "dfs"
|
8
|
+
return Cawcaw::Command::Hadoop::Dfs.run(argv, input_stream, output_stream)
|
9
|
+
else
|
10
|
+
STDERR.puts "invalid hadoop command: '#{command}'"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
require "cawcaw/command/hadoop/dfs"
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module Cawcaw
|
2
|
+
module Command
|
3
|
+
module Hadoop::Dfs
|
4
|
+
def self.run(argv, input_stream=$stdin, output_stream=$stdout)
|
5
|
+
|
6
|
+
params = Cawcaw.parse_opts(argv)
|
7
|
+
|
8
|
+
params[:graph_title] ||= "HDFS size"
|
9
|
+
params[:graph_args] ||= "--base 1000"
|
10
|
+
params[:graph_vlabel] ||= "bytes"
|
11
|
+
params[:graph_category] ||= "hadoop"
|
12
|
+
params[:graph_info] ||= "HDFS size"
|
13
|
+
|
14
|
+
params[:label_warning] ||= 5000000
|
15
|
+
params[:label_critical] ||= 5000000
|
16
|
+
|
17
|
+
params[:hadoop_command] ||= "hadoop"
|
18
|
+
|
19
|
+
if params[:stdin_flag]
|
20
|
+
hdfs_paths = []
|
21
|
+
while line = input_stream.gets
|
22
|
+
line.chomp!
|
23
|
+
hdfs_paths.push line
|
24
|
+
end
|
25
|
+
else
|
26
|
+
hdfs_paths = argv.shift
|
27
|
+
hdfs_paths = hdfs_paths.split(/,/) unless hdfs_paths.nil?
|
28
|
+
hdfs_paths ||= []
|
29
|
+
hdfs_paths.delete("")
|
30
|
+
end
|
31
|
+
command = argv.shift
|
32
|
+
|
33
|
+
if hdfs_paths == []
|
34
|
+
Cawcaw.logger.error("hdfs-path is not set")
|
35
|
+
return 1
|
36
|
+
end
|
37
|
+
|
38
|
+
case command
|
39
|
+
when "autoconf"
|
40
|
+
output_stream.puts "yes"
|
41
|
+
when "config"
|
42
|
+
output_stream.puts <<-EOF
|
43
|
+
graph_title #{params[:graph_title]}
|
44
|
+
graph_args #{params[:graph_args]}
|
45
|
+
graph_vlabel #{params[:graph_vlabel]}
|
46
|
+
graph_category #{params[:graph_category]}
|
47
|
+
graph_info #{params[:graph_info]}
|
48
|
+
EOF
|
49
|
+
|
50
|
+
label_draw = "AREA"
|
51
|
+
|
52
|
+
hdfs_paths.each do |hdfs_path|
|
53
|
+
label = hdfs_path.gsub(/[^a-zA-Z0-9]/, "_").downcase
|
54
|
+
output_stream.puts <<-EOF
|
55
|
+
#{label}.label #{hdfs_path}
|
56
|
+
#{label}.info #{hdfs_path} size
|
57
|
+
#{label}.draw #{label_draw}
|
58
|
+
#{label}.warning #{params[:label_warning]}
|
59
|
+
#{label}.critical #{params[:label_critical]}
|
60
|
+
EOF
|
61
|
+
label_draw = "STACK"
|
62
|
+
end
|
63
|
+
else
|
64
|
+
result = `#{params[:hadoop_command]} dfs -dus #{hdfs_paths.join(" ")}`
|
65
|
+
hdfs_size_hash = {}
|
66
|
+
result = result.split(/\r?\n/).map{|line|line.split(/\s+/)}
|
67
|
+
result.each do |record|
|
68
|
+
hdfs_uri = record[0]
|
69
|
+
hdfs_size = record[1]
|
70
|
+
hdfs_uri = URI.parse(hdfs_uri)
|
71
|
+
label = hdfs_uri.path.gsub(/[^a-zA-Z0-9]/, "_").downcase
|
72
|
+
output_stream.puts "#{label}.value #{hdfs_size}"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
return 0
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Cawcaw
|
2
|
+
module Command
|
3
|
+
module Rabbitmq
|
4
|
+
def self.run(argv, input_stream=$stdin, output_stream=$stdout)
|
5
|
+
command = argv.shift
|
6
|
+
case command
|
7
|
+
when "queue-count"
|
8
|
+
return Cawcaw::Command::Rabbitmq::QueueCount.run(argv, input_stream, output_stream)
|
9
|
+
else
|
10
|
+
STDERR.puts "invalid hadoop command: '#{command}'"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
require "cawcaw/command/rabbitmq/queue_count"
|
@@ -0,0 +1,90 @@
|
|
1
|
+
module Cawcaw
|
2
|
+
module Command
|
3
|
+
module Rabbitmq::QueueCount
|
4
|
+
def self.run(argv, input_stream=$stdin, output_stream=$stdout)
|
5
|
+
|
6
|
+
params = Cawcaw.parse_opts(argv)
|
7
|
+
params.update(Bunnish.parse_opts(argv))
|
8
|
+
|
9
|
+
params[:graph_title] ||= "Queue count"
|
10
|
+
params[:graph_args] ||= "--base 1000"
|
11
|
+
params[:graph_vlabel] ||= "messages"
|
12
|
+
params[:graph_category] ||= "rabbitmq"
|
13
|
+
params[:graph_info] ||= "Queue count"
|
14
|
+
|
15
|
+
params[:label_warning] ||= 5000000
|
16
|
+
params[:label_critical] ||= 5000000
|
17
|
+
|
18
|
+
host = params[:host]
|
19
|
+
port = params[:port]
|
20
|
+
user = params[:user]
|
21
|
+
password = params[:password]
|
22
|
+
durable = params[:durable]
|
23
|
+
|
24
|
+
if params[:stdin_flag]
|
25
|
+
queue_names = []
|
26
|
+
while line = input_stream.gets
|
27
|
+
line.chomp!
|
28
|
+
queue_names.push line
|
29
|
+
end
|
30
|
+
else
|
31
|
+
queue_names = argv.shift
|
32
|
+
queue_names = queue_names.split(/,/) unless queue_names.nil?
|
33
|
+
queue_names ||= []
|
34
|
+
queue_names.delete("")
|
35
|
+
end
|
36
|
+
command = argv.shift
|
37
|
+
|
38
|
+
if queue_names == []
|
39
|
+
Cawcaw.logger.error("queue-name is not set")
|
40
|
+
return 1
|
41
|
+
end
|
42
|
+
|
43
|
+
case command
|
44
|
+
when "autoconf"
|
45
|
+
output_stream.puts "yes"
|
46
|
+
when "config"
|
47
|
+
output_stream.puts <<-EOF
|
48
|
+
graph_title #{params[:graph_title]}
|
49
|
+
graph_args #{params[:graph_args]}
|
50
|
+
graph_vlabel #{params[:graph_vlabel]}
|
51
|
+
graph_category #{params[:graph_category]}
|
52
|
+
graph_info #{params[:graph_info]}
|
53
|
+
EOF
|
54
|
+
|
55
|
+
label_draw = "AREA"
|
56
|
+
|
57
|
+
queue_names.each do |queue_name|
|
58
|
+
label = queue_name.gsub(/[^a-zA-Z0-9]/, "_").downcase
|
59
|
+
output_stream.puts <<-EOF
|
60
|
+
#{label}.label #{queue_name}
|
61
|
+
#{label}.info #{queue_name} queue count
|
62
|
+
#{label}.draw #{label_draw}
|
63
|
+
#{label}.warning #{params[:label_warning]}
|
64
|
+
#{label}.critical #{params[:label_critical]}
|
65
|
+
EOF
|
66
|
+
label_draw = "STACK"
|
67
|
+
end
|
68
|
+
else
|
69
|
+
bunny = Bunny.new(:logging => false, :spec => '09', :host=>host, :port=>port, :user=>user, :pass=>password)
|
70
|
+
|
71
|
+
# start a communication session with the amqp server
|
72
|
+
bunny.start
|
73
|
+
|
74
|
+
queue_names.each do |queue_name|
|
75
|
+
# create/get queue
|
76
|
+
queue = bunny.queue(queue_name, :durable=>durable)
|
77
|
+
message_count = queue.status[:message_count]
|
78
|
+
label = queue_name.gsub(/[^a-zA-Z0-9]/, "_").downcase
|
79
|
+
output_stream.puts "#{label}.value #{message_count}"
|
80
|
+
end
|
81
|
+
# Close client
|
82
|
+
bunny.stop
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
return 0
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Cawcaw
|
2
|
+
module Core
|
3
|
+
module Common
|
4
|
+
def self.parse_opts(argv)
|
5
|
+
graph_title = nil
|
6
|
+
graph_args = nil
|
7
|
+
graph_vlabel = nil
|
8
|
+
graph_category = nil
|
9
|
+
graph_info = nil
|
10
|
+
stdin_flag = false
|
11
|
+
verbose_flag = false
|
12
|
+
|
13
|
+
next_argv = []
|
14
|
+
|
15
|
+
while 0 < argv.size do
|
16
|
+
val = argv.shift
|
17
|
+
case val
|
18
|
+
when "--graph-title"
|
19
|
+
graph_title = argv.shift
|
20
|
+
when "--graph-args"
|
21
|
+
graph_args = argv.shift
|
22
|
+
when "--graph-vlabel"
|
23
|
+
graph_vlabel = argv.shift
|
24
|
+
when "--graph-category"
|
25
|
+
graph_category = argv.shift
|
26
|
+
when "--graph-info"
|
27
|
+
graph_info = argv.shift
|
28
|
+
when "--label-warning"
|
29
|
+
label_warning = argv.shift.to_i
|
30
|
+
when "--label-critical"
|
31
|
+
label_critical = argv.shift.to_i
|
32
|
+
when "--hadoop-command"
|
33
|
+
hadoop_command = argv.shift
|
34
|
+
when "--stdin"
|
35
|
+
stdin_flag = true
|
36
|
+
when "--verbose"
|
37
|
+
verbose_flag = true
|
38
|
+
else
|
39
|
+
next_argv.push val
|
40
|
+
end
|
41
|
+
end
|
42
|
+
argv.push(*next_argv)
|
43
|
+
|
44
|
+
if verbose_flag then
|
45
|
+
Cawcaw.logger.level = Logger::INFO
|
46
|
+
else
|
47
|
+
Cawcaw.logger.level = Logger::WARN
|
48
|
+
end
|
49
|
+
|
50
|
+
return {
|
51
|
+
:graph_title=>graph_title,
|
52
|
+
:graph_args=>graph_args,
|
53
|
+
:graph_vlabel=>graph_vlabel,
|
54
|
+
:graph_category=>graph_category,
|
55
|
+
:graph_info=>graph_info,
|
56
|
+
:label_warning=>label_warning,
|
57
|
+
:label_critical=>label_critical,
|
58
|
+
:hadoop_command=>hadoop_command,
|
59
|
+
:stdin_flag=>stdin_flag,
|
60
|
+
:verbose_flag=>verbose_flag
|
61
|
+
}
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
if RUBY_VERSION <= '1.8.7'
|
2
|
+
else
|
3
|
+
require "simplecov"
|
4
|
+
require "simplecov-rcov"
|
5
|
+
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
|
6
|
+
SimpleCov.start
|
7
|
+
end
|
8
|
+
|
9
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
10
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
11
|
+
require "rspec"
|
12
|
+
require "cawcaw"
|
13
|
+
require "tempfile"
|
14
|
+
|
15
|
+
# Requires supporting files with custom matchers and macros, etc,
|
16
|
+
# in ./support/ and its subdirectories.
|
17
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
18
|
+
|
19
|
+
RSpec.configure do |config|
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
module Cawcaw
|
24
|
+
CAWCAW_HOME = File.expand_path(File.dirname(__FILE__) + "/..")
|
25
|
+
BIN_DIR = "#{CAWCAW_HOME}/bin"
|
26
|
+
LIB_DIR = "#{CAWCAW_HOME}/lib"
|
27
|
+
RUBY_CMD = "/usr/bin/env ruby -I #{LIB_DIR}"
|
28
|
+
REDIRECT = {}
|
29
|
+
end
|
30
|
+
|
31
|
+
Cawcaw.logger = Logger.new(STDERR)
|
32
|
+
if File.exist?('/tmp/cawcaw.debug') then
|
33
|
+
Cawcaw.logger.level = Logger::DEBUG
|
34
|
+
Cawcaw::REDIRECT[:stdout] = nil
|
35
|
+
Cawcaw::REDIRECT[:stderr] = nil
|
36
|
+
else
|
37
|
+
Cawcaw.logger.level = Logger::ERROR
|
38
|
+
Cawcaw::REDIRECT[:stdout] = "> /dev/null"
|
39
|
+
Cawcaw::REDIRECT[:stderr] = "2> /dev/null"
|
40
|
+
end
|
metadata
ADDED
@@ -0,0 +1,211 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cawcaw
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Kenji Hara
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-01-01 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bunnish
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.1.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.1.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rspec
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 2.8.0
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.8.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rdoc
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '3.12'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.12'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: bundler
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.0.0
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.0.0
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: jeweler
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 1.8.4
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.8.4
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: simplecov
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: simplecov-rcov
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: ci_reporter
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 1.7.0
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 1.7.0
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: flog
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: 3.2.0
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 3.2.0
|
158
|
+
description: cawcaw RubyGem
|
159
|
+
email: haracane@gmail.com
|
160
|
+
executables:
|
161
|
+
- cawcaw
|
162
|
+
extensions: []
|
163
|
+
extra_rdoc_files:
|
164
|
+
- LICENSE.txt
|
165
|
+
- README.rdoc
|
166
|
+
files:
|
167
|
+
- .document
|
168
|
+
- .rspec
|
169
|
+
- Gemfile
|
170
|
+
- LICENSE.txt
|
171
|
+
- README.rdoc
|
172
|
+
- Rakefile
|
173
|
+
- VERSION
|
174
|
+
- bin/cawcaw
|
175
|
+
- lib/cawcaw.rb
|
176
|
+
- lib/cawcaw/command/hadoop.rb
|
177
|
+
- lib/cawcaw/command/hadoop/dfs.rb
|
178
|
+
- lib/cawcaw/command/rabbitmq.rb
|
179
|
+
- lib/cawcaw/command/rabbitmq/queue_count.rb
|
180
|
+
- lib/cawcaw/core/common.rb
|
181
|
+
- spec/lib/cawcaw_spec.rb
|
182
|
+
- spec/spec_helper.rb
|
183
|
+
homepage: http://github.com/haracane/cawcaw
|
184
|
+
licenses:
|
185
|
+
- MIT
|
186
|
+
post_install_message:
|
187
|
+
rdoc_options: []
|
188
|
+
require_paths:
|
189
|
+
- lib
|
190
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
191
|
+
none: false
|
192
|
+
requirements:
|
193
|
+
- - ! '>='
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: '0'
|
196
|
+
segments:
|
197
|
+
- 0
|
198
|
+
hash: -1337098266464697206
|
199
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
200
|
+
none: false
|
201
|
+
requirements:
|
202
|
+
- - ! '>='
|
203
|
+
- !ruby/object:Gem::Version
|
204
|
+
version: '0'
|
205
|
+
requirements: []
|
206
|
+
rubyforge_project:
|
207
|
+
rubygems_version: 1.8.24
|
208
|
+
signing_key:
|
209
|
+
specification_version: 3
|
210
|
+
summary: cawcaw RubyGem
|
211
|
+
test_files: []
|