fluent-format 0.2.2 → 0.2.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +68 -8
- data/example/include.conf +5 -0
- data/example/include_error.conf +1 -0
- data/example/included.conf +3 -0
- data/example/included_error.conf +3 -0
- data/fluent-format.gemspec +1 -1
- data/lib/fluent/format/check.rb +3 -1
- data/lib/fluent/format/cli.rb +6 -2
- data/lib/fluent/format/version.rb +1 -1
- data/lib/fluent/format.rb +3 -2
- data/spec/fluent/format/check_spec.rb +12 -1
- data/spec/fluent/format/cli_spec.rb +12 -0
- data/spec/fluent/format/format_spec.rb +6 -0
- metadata +8 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c146d76922041322724ecc30226d50f82a10233
|
4
|
+
data.tar.gz: b9f8974f98d0c56705ae57a0d936d6f470a49f28
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b969c2059241258ce3c03a5c043805d3696726c0c1a2ff2b0cfa6409dda770649f65760bc07ae468943831609060c57f97fed9cae2d25c10550832df5b0c6fba
|
7
|
+
data.tar.gz: 1f09c86414d97aac4186616cf677c4d05b68652eca921ea2da12ea99e735040ea02b51c5459fd3d568ddfc150a543de134d5f3fe2f42d0c9cab13da21903bf96
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# fluent-format [](https://travis-ci.org/sonots/fluent-format)
|
2
2
|
|
3
|
-
|
3
|
+
An utility to format or check fluentd configuration
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -18,26 +18,87 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Command Line Interface
|
20
20
|
|
21
|
-
Format
|
21
|
+
### Format
|
22
22
|
|
23
|
+
$ fluent-format format -c fluent.conf
|
24
|
+
or
|
23
25
|
$ fluent-format -c fluent.conf
|
24
26
|
|
25
|
-
|
27
|
+
Input Example:
|
28
|
+
|
29
|
+
```
|
30
|
+
<source>
|
31
|
+
type forward
|
32
|
+
</source>
|
33
|
+
|
34
|
+
<match test>
|
35
|
+
type stdout
|
36
|
+
</match>
|
37
|
+
```
|
38
|
+
|
39
|
+
Output Example:
|
40
|
+
|
41
|
+
```
|
42
|
+
<source>
|
43
|
+
type forward
|
44
|
+
</source>
|
45
|
+
<match test>
|
46
|
+
type stdout
|
47
|
+
</match>
|
48
|
+
```
|
49
|
+
|
50
|
+
### Check
|
26
51
|
|
27
52
|
$ fluent-format check -c fluent.conf -p plugin_dir
|
28
|
-
$ echo $? # 0
|
53
|
+
$ echo $? # 0 or 1
|
54
|
+
|
55
|
+
This returns the status code 0 if check passed,
|
56
|
+
and status code 1 with error messages if check failed.
|
29
57
|
|
30
58
|
## As a library
|
31
59
|
|
60
|
+
### Format
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
require 'fluent-format'
|
64
|
+
|
65
|
+
File.open(path) {|config|
|
66
|
+
puts Fluent::Format.format(config)
|
67
|
+
}
|
68
|
+
```
|
69
|
+
|
70
|
+
or
|
71
|
+
|
72
|
+
```ruby
|
73
|
+
require 'fluent-format'
|
74
|
+
|
75
|
+
puts Fluent::Format.format(path)
|
76
|
+
```
|
77
|
+
|
78
|
+
Use the 2nd way when you want to exapnd `include` directive.
|
79
|
+
|
80
|
+
### Check
|
81
|
+
|
32
82
|
```ruby
|
33
83
|
require 'fluent-format'
|
34
84
|
|
35
85
|
File.open(path) {|config|
|
36
|
-
|
37
|
-
|
86
|
+
Fluent::Format.check(config, plugin_dir)
|
87
|
+
#=> Fluent::ConfigParseError or Fluent::ConfigError if failed
|
38
88
|
}
|
39
89
|
```
|
40
90
|
|
91
|
+
or
|
92
|
+
|
93
|
+
```ruby
|
94
|
+
require 'fluent-format'
|
95
|
+
|
96
|
+
Fluent::Format.check(path, plugin_dir)
|
97
|
+
#=> Fluent::ConfigParseError or Fluent::ConfigError if failed
|
98
|
+
```
|
99
|
+
|
100
|
+
Use the 2nd way when you want to exapnd `include` directive.
|
101
|
+
|
41
102
|
## Contributing
|
42
103
|
|
43
104
|
1. Fork it
|
@@ -49,4 +110,3 @@ File.open(path) {|config|
|
|
49
110
|
## Licenses
|
50
111
|
|
51
112
|
See [LICENSE](LICENSE)
|
52
|
-
|
@@ -0,0 +1 @@
|
|
1
|
+
include included_error.conf
|
data/fluent-format.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.authors = ["Naotoshi Seo"]
|
10
10
|
s.email = ["sonots@gmail.com"]
|
11
11
|
s.homepage = "https://github.com/sonots/fluent-format"
|
12
|
-
s.summary = "A
|
12
|
+
s.summary = "A utility to format or check fluentd configuration"
|
13
13
|
s.description = s.summary
|
14
14
|
s.licenses = ["MIT"]
|
15
15
|
|
data/lib/fluent/format/check.rb
CHANGED
@@ -7,7 +7,8 @@ module Fluent
|
|
7
7
|
#
|
8
8
|
# @param [IO|String] config_dev
|
9
9
|
# @param [String] plugin_dir the plugin directory
|
10
|
-
|
10
|
+
# @param [Array] libs load libraries (to require)
|
11
|
+
def initialize(config_dev, plugin_dir = nil, libs = nil)
|
11
12
|
@opts = {
|
12
13
|
:config_path => config_dev, # Fluent::DEFAULT_CONFIG_PATH,
|
13
14
|
:plugin_dirs => [Fluent::DEFAULT_PLUGIN_DIR],
|
@@ -22,6 +23,7 @@ module Fluent
|
|
22
23
|
:suppress_repeated_stacktrace => false,
|
23
24
|
}
|
24
25
|
@opts[:plugin_dirs] << plugin_dir if plugin_dir
|
26
|
+
@opts[:libs] += libs if libs and !libs.empty?
|
25
27
|
end
|
26
28
|
|
27
29
|
# Check config file
|
data/lib/fluent/format/cli.rb
CHANGED
@@ -17,11 +17,15 @@ module Fluent
|
|
17
17
|
|
18
18
|
desc "check", "Check fluent.conf"
|
19
19
|
option :config, :aliases => ["-c"], :type => :string, :default => 'fluent.conf', :desc => 'Fluentd configuration file'
|
20
|
-
option :plugin, :aliases => ["-p"], :type => :string, :desc => 'Fluentd plugin directory'
|
20
|
+
option :plugin, :aliases => ["-p"], :type => :string, :desc => 'Additional Fluentd plugin directory'
|
21
|
+
option :require, :aliases => ["-r"], :type => :array, :desc => 'Additional Fluentd lib path'
|
21
22
|
def check
|
22
23
|
config = @options[:config]
|
23
24
|
plugin = @options[:plugin]
|
24
|
-
|
25
|
+
require 'pry'
|
26
|
+
binding.pry
|
27
|
+
libs = @options[:require]
|
28
|
+
Fluent::Format.check(config, plugin, libs)
|
25
29
|
rescue => e
|
26
30
|
$stderr.puts "#{e.class} #{e.message} #{e.backtrace.first}"
|
27
31
|
exit 1
|
data/lib/fluent/format.rb
CHANGED
@@ -14,9 +14,10 @@ module Fluent
|
|
14
14
|
#
|
15
15
|
# @param [IO|String] config_dev
|
16
16
|
# @param [String] plugin_dir the plugin directory
|
17
|
+
# @param [Array] libs load libraries (to require)
|
17
18
|
# @return [Boolean]
|
18
|
-
def self.check(config_dev, plugin_dir = nil)
|
19
|
-
Fluent::Format::Check.new(config_dev, plugin_dir).run
|
19
|
+
def self.check(config_dev, plugin_dir = nil, libs = nil)
|
20
|
+
Fluent::Format::Check.new(config_dev, plugin_dir, libs).run
|
20
21
|
end
|
21
22
|
end
|
22
23
|
end
|
@@ -2,13 +2,19 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Fluent::Format::Check do
|
4
4
|
let(:plugin_dir) { File.expand_path('../../../example', File.dirname(__FILE__)) }
|
5
|
-
let(:
|
5
|
+
let(:libs) { [File.expand_path('../../../example/out_example', File.dirname(__FILE__))] }
|
6
|
+
let(:subject) { Fluent::Format.check(config, plugin_dir, libs) }
|
6
7
|
|
7
8
|
context "valid" do
|
8
9
|
let(:config) { StringIO.new(%[<match>\ntype stdout\n</match>]) }
|
9
10
|
it { should be_true }
|
10
11
|
end
|
11
12
|
|
13
|
+
context "plugin option" do
|
14
|
+
let(:config) { StringIO.new(%[<match>\ntype example\n</match>]) }
|
15
|
+
it { should be_true }
|
16
|
+
end
|
17
|
+
|
12
18
|
context "syntax error" do
|
13
19
|
let(:config) { StringIO.new(%[<source>\ntype stdout\n</match>]) }
|
14
20
|
it { expect { subject }.to raise_error(Fluent::ConfigParseError) }
|
@@ -23,5 +29,10 @@ describe Fluent::Format::Check do
|
|
23
29
|
let(:config) { StringIO.new(%[<match>\ntype example\nparam bad\n</match>]) }
|
24
30
|
it { expect { subject }.to raise_error(Fluent::ConfigError) }
|
25
31
|
end
|
32
|
+
|
33
|
+
context "file_path should `include`" do
|
34
|
+
let(:config) { File.expand_path('../../../example/include_error.conf', File.dirname(__FILE__)) }
|
35
|
+
it { expect { subject }.to raise_error(Fluent::ConfigError) }
|
36
|
+
end
|
26
37
|
end
|
27
38
|
|
@@ -40,6 +40,18 @@ describe Fluent::Format::CLI do
|
|
40
40
|
it { expect { subject }.not_to raise_error }
|
41
41
|
end
|
42
42
|
|
43
|
+
context "plugin option" do
|
44
|
+
let(:opts) { {config: "fluent.conf", plugin: "example"} }
|
45
|
+
it { capture_stderr { subject }.should == "" }
|
46
|
+
it { expect { subject }.not_to raise_error }
|
47
|
+
end
|
48
|
+
|
49
|
+
context "require option" do
|
50
|
+
let(:opts) { {config: "fluent.conf", require: ["example/out_example"]} }
|
51
|
+
it { capture_stderr { subject }.should == "" }
|
52
|
+
it { expect { subject }.not_to raise_error }
|
53
|
+
end
|
54
|
+
|
43
55
|
context "syntax error" do
|
44
56
|
let(:opts) { {config: "example/syntax_error.conf"} }
|
45
57
|
it { capture_stderr { subject }.should include("parse error") }
|
@@ -17,6 +17,12 @@ describe Fluent::Format::Format do
|
|
17
17
|
let(:config) { StringIO.new(%[<match>\ntype foobar\n</match>]) }
|
18
18
|
it { should == %[<match>\n type foobar\n</match>] }
|
19
19
|
end
|
20
|
+
|
21
|
+
context "file_path should `include`" do
|
22
|
+
let(:config) { File.expand_path('../../../example/include.conf', File.dirname(__FILE__)) }
|
23
|
+
let(:included) { File.expand_path('../../../example/included.conf', File.dirname(__FILE__)) }
|
24
|
+
it { should include(File.read(included)) }
|
25
|
+
end
|
20
26
|
end
|
21
27
|
|
22
28
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-format
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Naotoshi Seo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -94,7 +94,7 @@ dependencies:
|
|
94
94
|
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
-
description: A
|
97
|
+
description: A utility to format or check fluentd configuration
|
98
98
|
email:
|
99
99
|
- sonots@gmail.com
|
100
100
|
executables:
|
@@ -111,6 +111,10 @@ files:
|
|
111
111
|
- README.md
|
112
112
|
- Rakefile
|
113
113
|
- bin/fluent-format
|
114
|
+
- example/include.conf
|
115
|
+
- example/include_error.conf
|
116
|
+
- example/included.conf
|
117
|
+
- example/included_error.conf
|
114
118
|
- example/out_example.rb
|
115
119
|
- example/param_error.conf
|
116
120
|
- example/plugin_error.conf
|
@@ -150,7 +154,7 @@ rubyforge_project:
|
|
150
154
|
rubygems_version: 2.0.3
|
151
155
|
signing_key:
|
152
156
|
specification_version: 4
|
153
|
-
summary: A
|
157
|
+
summary: A utility to format or check fluentd configuration
|
154
158
|
test_files:
|
155
159
|
- spec/fluent/format/check_spec.rb
|
156
160
|
- spec/fluent/format/cli_spec.rb
|