miu 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/miu +3 -0
- data/lib/miu/cli.rb +12 -24
- data/lib/miu/plugin.rb +42 -2
- data/lib/miu/version.rb +1 -1
- data/lib/miu.rb +13 -28
- data/lib/templates/Gemfile +3 -0
- data/lib/templates/config/fluent.conf +5 -0
- data/lib/templates/config/miu.god +13 -0
- data/miu.gemspec +1 -0
- metadata +22 -3
data/bin/miu
CHANGED
data/lib/miu/cli.rb
CHANGED
@@ -6,6 +6,16 @@ module Miu
|
|
6
6
|
include ::Thor::Actions
|
7
7
|
add_runtime_options!
|
8
8
|
|
9
|
+
class << self
|
10
|
+
def source_root
|
11
|
+
File.expand_path('../../templates', __FILE__)
|
12
|
+
end
|
13
|
+
|
14
|
+
def destination_root
|
15
|
+
Miu.root
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
9
19
|
map ['--version', '-v'] => :version
|
10
20
|
|
11
21
|
desc 'version', 'Show version'
|
@@ -24,32 +34,10 @@ module Miu
|
|
24
34
|
|
25
35
|
desc 'init', 'Generates a miu configuration files'
|
26
36
|
def init
|
27
|
-
|
37
|
+
copy_file 'Gemfile'
|
38
|
+
directory 'config'
|
28
39
|
empty_directory 'log'
|
29
40
|
empty_directory 'tmp/pids'
|
30
|
-
|
31
|
-
create_file 'config/miu.god', <<-CONF
|
32
|
-
# vim: ft=ruby
|
33
|
-
require 'miu'
|
34
|
-
|
35
|
-
God.port = 30300
|
36
|
-
God.pid_file_directory = Miu.root.join('tmp/pids')
|
37
|
-
|
38
|
-
God.watch do |w|
|
39
|
-
w.dir = Miu.root
|
40
|
-
w.log = Miu.root.join('log/fluentd.log')
|
41
|
-
w.name = 'fluentd'
|
42
|
-
w.start = 'bundle exec fluentd -c config/fluent.conf'
|
43
|
-
w.keepalive
|
44
|
-
end
|
45
|
-
CONF
|
46
|
-
create_file 'config/fluent.conf', <<-CONF
|
47
|
-
# built-in TCP input
|
48
|
-
# $ echo <json> | fluent-cat <tag>
|
49
|
-
<source>
|
50
|
-
type forward
|
51
|
-
</source>
|
52
|
-
CONF
|
53
41
|
end
|
54
42
|
end
|
55
43
|
end
|
data/lib/miu/plugin.rb
CHANGED
@@ -4,12 +4,52 @@ module Miu
|
|
4
4
|
module Plugin
|
5
5
|
def self.included(base)
|
6
6
|
base.extend ClassMethods
|
7
|
+
base.called_from = begin
|
8
|
+
call_stack = caller.map { |p| p.sub(/:\d+.*/, '') }
|
9
|
+
File.dirname(call_stack.detect { |p| p !~ %r(miu[\w.-]*/lib/miu/plugins) })
|
10
|
+
end
|
7
11
|
end
|
8
12
|
|
9
13
|
module ClassMethods
|
14
|
+
attr_accessor :called_from
|
15
|
+
|
10
16
|
def register(*args, &block)
|
11
|
-
|
12
|
-
|
17
|
+
require 'miu/cli'
|
18
|
+
options = args.last.is_a?(::Hash) ? args.pop : {}
|
19
|
+
name = args.shift
|
20
|
+
plugin = args.shift || self
|
21
|
+
usage = options[:usage] || "#{name} [COMMAND]"
|
22
|
+
desc = options[:desc] || plugin.to_s
|
23
|
+
|
24
|
+
Miu.plugins[name] = plugin
|
25
|
+
Miu::CLI.register generate_subcommand(name, plugin, &block), name, usage, desc if block
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def generate_subcommand(name, plugin, &block)
|
31
|
+
require 'thor'
|
32
|
+
Class.new ::Thor do
|
33
|
+
include ::Thor::Actions
|
34
|
+
add_runtime_options!
|
35
|
+
|
36
|
+
class << self
|
37
|
+
def source_root
|
38
|
+
Miu.find_root('Gemfile', plugin.called_from)
|
39
|
+
end
|
40
|
+
|
41
|
+
def destination_root
|
42
|
+
Miu.root
|
43
|
+
end
|
44
|
+
|
45
|
+
def banner(task, namespace = nil, subcommand = true)
|
46
|
+
super
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
namespace name
|
51
|
+
class_eval &block if block
|
52
|
+
end
|
13
53
|
end
|
14
54
|
end
|
15
55
|
end
|
data/lib/miu/version.rb
CHANGED
data/lib/miu.rb
CHANGED
@@ -1,48 +1,33 @@
|
|
1
1
|
require 'miu/version'
|
2
2
|
|
3
3
|
module Miu
|
4
|
-
autoload :CLI, 'miu/cli'
|
5
|
-
|
6
4
|
class << self
|
7
5
|
def root
|
8
|
-
|
9
|
-
Pathname.new(File.expand_path('../../', __FILE__))
|
6
|
+
@root ||= find_root 'Gemfile'
|
10
7
|
end
|
11
8
|
|
12
9
|
def plugins
|
13
10
|
@plugins ||= {}
|
14
11
|
end
|
15
12
|
|
16
|
-
def register(name,
|
13
|
+
def register(name, plugin, options = {}, &block)
|
17
14
|
name = name.to_s
|
18
15
|
usage = options[:usage] || "#{name} [COMMAND]"
|
19
|
-
desc = options[:desc] ||
|
16
|
+
desc = options[:desc] || plugin.to_s
|
20
17
|
|
21
|
-
plugins[name] =
|
22
|
-
Miu::CLI.register generate_subcommand(name, &block), name, usage, desc if block
|
18
|
+
plugins[name] = plugin
|
19
|
+
Miu::CLI.register generate_subcommand(name, plugin, &block), name, usage, desc if block
|
23
20
|
end
|
24
21
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
add_runtime_options!
|
32
|
-
|
33
|
-
class << self
|
34
|
-
def source_root
|
35
|
-
Miu.root.to_s
|
36
|
-
end
|
37
|
-
|
38
|
-
def banner(task, namespace = nil, subcommand = true)
|
39
|
-
super
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
namespace name
|
44
|
-
class_eval &block if block
|
22
|
+
def find_root(flag, base = nil)
|
23
|
+
require 'pathname'
|
24
|
+
path = base || Dir.pwd
|
25
|
+
while path && File.directory?(path) && File.exist?("#{path}/#{flag}")
|
26
|
+
parent = File.dirname path
|
27
|
+
path = path != parent && path
|
45
28
|
end
|
29
|
+
raise 'Could not find root path' unless path
|
30
|
+
Pathname.new File.realpath(path)
|
46
31
|
end
|
47
32
|
end
|
48
33
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# vim: ft=ruby
|
2
|
+
require 'miu'
|
3
|
+
|
4
|
+
God.port = 30300
|
5
|
+
God.pid_file_directory = Miu.root.join('tmp/pids')
|
6
|
+
|
7
|
+
God.watch do |w|
|
8
|
+
w.dir = Miu.root
|
9
|
+
w.log = Miu.root.join('log/fluentd.log')
|
10
|
+
w.name = 'fluentd'
|
11
|
+
w.start = 'bundle exec fluentd -c config/fluent.conf'
|
12
|
+
w.keepalive
|
13
|
+
end
|
data/miu.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: miu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,6 +11,22 @@ bindir: bin
|
|
11
11
|
cert_chain: []
|
12
12
|
date: 2013-02-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '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'
|
14
30
|
- !ruby/object:Gem::Dependency
|
15
31
|
name: thor
|
16
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -111,6 +127,9 @@ files:
|
|
111
127
|
- lib/miu/plugins.rb
|
112
128
|
- lib/miu/plugins/null.rb
|
113
129
|
- lib/miu/version.rb
|
130
|
+
- lib/templates/Gemfile
|
131
|
+
- lib/templates/config/fluent.conf
|
132
|
+
- lib/templates/config/miu.god
|
114
133
|
- miu.gemspec
|
115
134
|
homepage: ''
|
116
135
|
licenses: []
|
@@ -126,7 +145,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
126
145
|
version: '0'
|
127
146
|
segments:
|
128
147
|
- 0
|
129
|
-
hash: -
|
148
|
+
hash: -519439640692874562
|
130
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
150
|
none: false
|
132
151
|
requirements:
|
@@ -135,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
154
|
version: '0'
|
136
155
|
segments:
|
137
156
|
- 0
|
138
|
-
hash: -
|
157
|
+
hash: -519439640692874562
|
139
158
|
requirements: []
|
140
159
|
rubyforge_project:
|
141
160
|
rubygems_version: 1.8.24
|