vyatta-utils 0.0.1
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/.gitignore +4 -0
- data/Gemfile +5 -0
- data/README.md +43 -0
- data/Rakefile +1 -0
- data/bin/vyatta-config2command +52 -0
- data/lib/vyatta-utils.rb +7 -0
- data/lib/vyatta-utils/config.y +79 -0
- data/lib/vyatta-utils/config_parser.rb +230 -0
- data/lib/vyatta-utils/version.rb +5 -0
- data/lib/vyatta-utils/vyattaparser.rb +226 -0
- data/vyatta-utils.gemspec +24 -0
- metadata +76 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
Vyatta utils
|
2
|
+
============
|
3
|
+
|
4
|
+
仮想ルータVyattaのユーティリティ
|
5
|
+
|
6
|
+
現在ある機能
|
7
|
+
----------
|
8
|
+
|
9
|
+
- コンフィグファイルをコマンドライン形式へのコンバート
|
10
|
+
|
11
|
+
|
12
|
+
インストール手順
|
13
|
+
---------------
|
14
|
+
|
15
|
+
### githubから
|
16
|
+
|
17
|
+
$ git clone git://github.com/tumf/vyatta-utils.git
|
18
|
+
$ cd vyatta-utils
|
19
|
+
$ bundle install
|
20
|
+
|
21
|
+
### RubyGemsから
|
22
|
+
|
23
|
+
$ gem install vyatta-utils
|
24
|
+
|
25
|
+
|
26
|
+
config->command 変換
|
27
|
+
--------------------
|
28
|
+
|
29
|
+
Vyattaのconfigをコマンドライン形式に変換する。
|
30
|
+
|
31
|
+
$ vyatta-config2command 変換したいコンフィグファイル -o 出力先コマンドファイル
|
32
|
+
|
33
|
+
入力先ファイルの指定を省略した場合は標準入力から入力する。
|
34
|
+
出力先ファイルの指定を省略した場合は標準出力に出力する。
|
35
|
+
|
36
|
+
config解析用のパーサ生成
|
37
|
+
----------------------
|
38
|
+
|
39
|
+
`lib/vyatta-utils/config.y`を修正したときには以下のコマンドでパーサを更新する。
|
40
|
+
|
41
|
+
$ racc lib/vyatta-utils/config.y -o lib/vyatta-utils/config_parser.rb
|
42
|
+
|
43
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
$:.unshift(File.expand_path(File.join(File.dirname(__FILE__),'..','lib')))
|
4
|
+
require 'optparse'
|
5
|
+
require 'vyatta-utils'
|
6
|
+
require 'vyatta-utils/config_parser'
|
7
|
+
|
8
|
+
def walk_statements(stmts,prefix="")
|
9
|
+
res = ""
|
10
|
+
stmts.compact.each{|stmt|
|
11
|
+
if stmt.has_key?("group")
|
12
|
+
res += walk_statements(stmt["group"],prefix+" "+stmt["values"].join(" "))
|
13
|
+
else
|
14
|
+
res += "set "+prefix+" "+stmt["values"].join(" ")+"\n"
|
15
|
+
end
|
16
|
+
}
|
17
|
+
res
|
18
|
+
end
|
19
|
+
def exit_with_show_usage
|
20
|
+
puts "Vyatta config to command converter #{Vyatta::Utils::VERSION}"
|
21
|
+
puts "Usage: #{$0} [infile] [-o outfile]"
|
22
|
+
exit
|
23
|
+
end
|
24
|
+
|
25
|
+
opt=OptionParser.new
|
26
|
+
infile = nil
|
27
|
+
outfile = nil
|
28
|
+
# opt.on('-i VAL'){|v| infile=v}
|
29
|
+
opt.on('-o VAL'){|v| outfile=v}
|
30
|
+
opt.on('-v'){ exit_with_show_usage }
|
31
|
+
opt.on('-h'){ exit_with_show_usage }
|
32
|
+
|
33
|
+
opt.parse!(ARGV)
|
34
|
+
|
35
|
+
stmts = nil
|
36
|
+
parser = Vyatta::Utils::ConfigParser.new()
|
37
|
+
|
38
|
+
inf = ARGF
|
39
|
+
infile = ARGV.shift
|
40
|
+
inf = open(infile) if infile
|
41
|
+
|
42
|
+
stmts = parser.parse(inf.read)
|
43
|
+
res = walk_statements(stmts)
|
44
|
+
|
45
|
+
if outfile
|
46
|
+
open(outfile,"w"){|f|
|
47
|
+
f.write(res)
|
48
|
+
}
|
49
|
+
else
|
50
|
+
puts res
|
51
|
+
end
|
52
|
+
exit 0
|
data/lib/vyatta-utils.rb
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
class Vyatta::Utils::ConfigParser
|
2
|
+
rule
|
3
|
+
stmts: stmt stmts
|
4
|
+
{
|
5
|
+
result = val[1].unshift(val[0])
|
6
|
+
}
|
7
|
+
|
|
8
|
+
{
|
9
|
+
result = []
|
10
|
+
}
|
11
|
+
|
12
|
+
stmt: exprss CR #グループ化なし
|
13
|
+
{
|
14
|
+
result = {
|
15
|
+
"values"=>val[0]
|
16
|
+
}
|
17
|
+
}
|
18
|
+
| exprss group CR #グループ化あり
|
19
|
+
{
|
20
|
+
result = {
|
21
|
+
"values"=>val[0],
|
22
|
+
"group"=>val[1]
|
23
|
+
}
|
24
|
+
}
|
25
|
+
| CR #空文。改行挟まるところ考えるのめんどい
|
26
|
+
{
|
27
|
+
result = nil
|
28
|
+
}
|
29
|
+
|
30
|
+
exprss: expr exprs #1個以上の式
|
31
|
+
{
|
32
|
+
result = val[1].unshift(val[0])
|
33
|
+
}
|
34
|
+
exprs: expr exprs #0個以上の式
|
35
|
+
{
|
36
|
+
result = val[1].unshift(val[0])
|
37
|
+
}
|
38
|
+
|
|
39
|
+
{
|
40
|
+
result = []
|
41
|
+
}
|
42
|
+
|
43
|
+
expr: VAL {result = val[0]}
|
44
|
+
|
45
|
+
group: '{' stmts '}'
|
46
|
+
{
|
47
|
+
result = val[1]
|
48
|
+
}
|
49
|
+
|
50
|
+
end
|
51
|
+
---- inner
|
52
|
+
def parse(str)
|
53
|
+
@yydebug=true
|
54
|
+
@tokens = str.split(/([\t \n\{\}])/).delete_if{|c|
|
55
|
+
#空白は削除
|
56
|
+
c==" " || c=="\t"
|
57
|
+
}.select{|c|
|
58
|
+
!c.nil? && c!=""
|
59
|
+
}
|
60
|
+
#p @tokens
|
61
|
+
do_parse()
|
62
|
+
end
|
63
|
+
|
64
|
+
def next_token()
|
65
|
+
token = @tokens.shift()
|
66
|
+
#p token
|
67
|
+
case token
|
68
|
+
when "\n"
|
69
|
+
return [:CR,nil]
|
70
|
+
when nil
|
71
|
+
return nil
|
72
|
+
when "{"
|
73
|
+
return ["{",nil]
|
74
|
+
when "}"
|
75
|
+
return ["}",nil]
|
76
|
+
else
|
77
|
+
return [:VAL,token]
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,230 @@
|
|
1
|
+
#
|
2
|
+
# DO NOT MODIFY!!!!
|
3
|
+
# This file is automatically generated by Racc 1.4.7
|
4
|
+
# from Racc grammer file "".
|
5
|
+
#
|
6
|
+
|
7
|
+
require 'racc/parser.rb'
|
8
|
+
module Vyatta
|
9
|
+
module Utils
|
10
|
+
class ConfigParser < Racc::Parser
|
11
|
+
|
12
|
+
module_eval(<<'...end config.y/module_eval...', 'config.y', 52)
|
13
|
+
def parse(str)
|
14
|
+
@yydebug=true
|
15
|
+
@tokens = str.split(/([\t \n\{\}])/).delete_if{|c|
|
16
|
+
#空白は削除
|
17
|
+
c==" " || c=="\t"
|
18
|
+
}.select{|c|
|
19
|
+
!c.nil? && c!=""
|
20
|
+
}
|
21
|
+
#p @tokens
|
22
|
+
do_parse()
|
23
|
+
end
|
24
|
+
|
25
|
+
def next_token()
|
26
|
+
token = @tokens.shift()
|
27
|
+
#p token
|
28
|
+
case token
|
29
|
+
when "\n"
|
30
|
+
return [:CR,nil]
|
31
|
+
when nil
|
32
|
+
return nil
|
33
|
+
when "{"
|
34
|
+
return ["{",nil]
|
35
|
+
when "}"
|
36
|
+
return ["}",nil]
|
37
|
+
else
|
38
|
+
return [:VAL,token]
|
39
|
+
end
|
40
|
+
end
|
41
|
+
...end config.y/module_eval...
|
42
|
+
##### State transition tables begin ###
|
43
|
+
|
44
|
+
racc_action_table = [
|
45
|
+
11, 3, 12, 2, 3, 2, 3, 2, 3, 9,
|
46
|
+
15, 3, 17, 18 ]
|
47
|
+
|
48
|
+
racc_action_check = [
|
49
|
+
6, 7, 6, 0, 0, 12, 12, 5, 5, 4,
|
50
|
+
9, 1, 13, 16 ]
|
51
|
+
|
52
|
+
racc_action_pointer = [
|
53
|
+
1, 8, nil, nil, 9, 5, -2, -2, nil, 10,
|
54
|
+
nil, nil, 3, 10, nil, nil, 8, nil, nil ]
|
55
|
+
|
56
|
+
racc_action_default = [
|
57
|
+
-2, -8, -5, -9, -11, -2, -11, -8, -6, -11,
|
58
|
+
-1, -3, -2, -11, -7, 19, -11, -4, -10 ]
|
59
|
+
|
60
|
+
racc_goto_table = [
|
61
|
+
4, 7, 8, 13, nil, 10, nil, 7, 14, nil,
|
62
|
+
nil, nil, 16 ]
|
63
|
+
|
64
|
+
racc_goto_check = [
|
65
|
+
1, 5, 6, 4, nil, 1, nil, 5, 6, nil,
|
66
|
+
nil, nil, 1 ]
|
67
|
+
|
68
|
+
racc_goto_pointer = [
|
69
|
+
nil, 0, nil, nil, -3, 0, 1 ]
|
70
|
+
|
71
|
+
racc_goto_default = [
|
72
|
+
nil, nil, 5, 6, nil, 1, nil ]
|
73
|
+
|
74
|
+
racc_reduce_table = [
|
75
|
+
0, 0, :racc_error,
|
76
|
+
2, 7, :_reduce_1,
|
77
|
+
0, 7, :_reduce_2,
|
78
|
+
2, 8, :_reduce_3,
|
79
|
+
3, 8, :_reduce_4,
|
80
|
+
1, 8, :_reduce_5,
|
81
|
+
2, 9, :_reduce_6,
|
82
|
+
2, 12, :_reduce_7,
|
83
|
+
0, 12, :_reduce_8,
|
84
|
+
1, 11, :_reduce_9,
|
85
|
+
3, 10, :_reduce_10 ]
|
86
|
+
|
87
|
+
racc_reduce_n = 11
|
88
|
+
|
89
|
+
racc_shift_n = 19
|
90
|
+
|
91
|
+
racc_token_table = {
|
92
|
+
false => 0,
|
93
|
+
:error => 1,
|
94
|
+
:CR => 2,
|
95
|
+
:VAL => 3,
|
96
|
+
"{" => 4,
|
97
|
+
"}" => 5 }
|
98
|
+
|
99
|
+
racc_nt_base = 6
|
100
|
+
|
101
|
+
racc_use_result_var = true
|
102
|
+
|
103
|
+
Racc_arg = [
|
104
|
+
racc_action_table,
|
105
|
+
racc_action_check,
|
106
|
+
racc_action_default,
|
107
|
+
racc_action_pointer,
|
108
|
+
racc_goto_table,
|
109
|
+
racc_goto_check,
|
110
|
+
racc_goto_default,
|
111
|
+
racc_goto_pointer,
|
112
|
+
racc_nt_base,
|
113
|
+
racc_reduce_table,
|
114
|
+
racc_token_table,
|
115
|
+
racc_shift_n,
|
116
|
+
racc_reduce_n,
|
117
|
+
racc_use_result_var ]
|
118
|
+
|
119
|
+
Racc_token_to_s_table = [
|
120
|
+
"$end",
|
121
|
+
"error",
|
122
|
+
"CR",
|
123
|
+
"VAL",
|
124
|
+
"\"{\"",
|
125
|
+
"\"}\"",
|
126
|
+
"$start",
|
127
|
+
"stmts",
|
128
|
+
"stmt",
|
129
|
+
"exprss",
|
130
|
+
"group",
|
131
|
+
"expr",
|
132
|
+
"exprs" ]
|
133
|
+
|
134
|
+
Racc_debug_parser = false
|
135
|
+
|
136
|
+
##### State transition tables end #####
|
137
|
+
|
138
|
+
# reduce 0 omitted
|
139
|
+
|
140
|
+
module_eval(<<'.,.,', 'config.y', 4)
|
141
|
+
def _reduce_1(val, _values, result)
|
142
|
+
result = val[1].unshift(val[0])
|
143
|
+
|
144
|
+
result
|
145
|
+
end
|
146
|
+
.,.,
|
147
|
+
|
148
|
+
module_eval(<<'.,.,', 'config.y', 8)
|
149
|
+
def _reduce_2(val, _values, result)
|
150
|
+
result = []
|
151
|
+
|
152
|
+
result
|
153
|
+
end
|
154
|
+
.,.,
|
155
|
+
|
156
|
+
module_eval(<<'.,.,', 'config.y', 13)
|
157
|
+
def _reduce_3(val, _values, result)
|
158
|
+
result = {
|
159
|
+
"values"=>val[0]
|
160
|
+
}
|
161
|
+
|
162
|
+
result
|
163
|
+
end
|
164
|
+
.,.,
|
165
|
+
|
166
|
+
module_eval(<<'.,.,', 'config.y', 19)
|
167
|
+
def _reduce_4(val, _values, result)
|
168
|
+
result = {
|
169
|
+
"values"=>val[0],
|
170
|
+
"group"=>val[1]
|
171
|
+
}
|
172
|
+
|
173
|
+
result
|
174
|
+
end
|
175
|
+
.,.,
|
176
|
+
|
177
|
+
module_eval(<<'.,.,', 'config.y', 26)
|
178
|
+
def _reduce_5(val, _values, result)
|
179
|
+
result = nil
|
180
|
+
|
181
|
+
result
|
182
|
+
end
|
183
|
+
.,.,
|
184
|
+
|
185
|
+
module_eval(<<'.,.,', 'config.y', 31)
|
186
|
+
def _reduce_6(val, _values, result)
|
187
|
+
result = val[1].unshift(val[0])
|
188
|
+
|
189
|
+
result
|
190
|
+
end
|
191
|
+
.,.,
|
192
|
+
|
193
|
+
module_eval(<<'.,.,', 'config.y', 35)
|
194
|
+
def _reduce_7(val, _values, result)
|
195
|
+
result = val[1].unshift(val[0])
|
196
|
+
|
197
|
+
result
|
198
|
+
end
|
199
|
+
.,.,
|
200
|
+
|
201
|
+
module_eval(<<'.,.,', 'config.y', 39)
|
202
|
+
def _reduce_8(val, _values, result)
|
203
|
+
result = []
|
204
|
+
|
205
|
+
result
|
206
|
+
end
|
207
|
+
.,.,
|
208
|
+
|
209
|
+
module_eval(<<'.,.,', 'config.y', 42)
|
210
|
+
def _reduce_9(val, _values, result)
|
211
|
+
result = val[0]
|
212
|
+
result
|
213
|
+
end
|
214
|
+
.,.,
|
215
|
+
|
216
|
+
module_eval(<<'.,.,', 'config.y', 46)
|
217
|
+
def _reduce_10(val, _values, result)
|
218
|
+
result = val[1]
|
219
|
+
|
220
|
+
result
|
221
|
+
end
|
222
|
+
.,.,
|
223
|
+
|
224
|
+
def _reduce_none(val, _values, result)
|
225
|
+
val[0]
|
226
|
+
end
|
227
|
+
|
228
|
+
end # class ConfigParser
|
229
|
+
end # module Utils
|
230
|
+
end # module Vyatta
|
@@ -0,0 +1,226 @@
|
|
1
|
+
#
|
2
|
+
# DO NOT MODIFY!!!!
|
3
|
+
# This file is automatically generated by Racc 1.4.7
|
4
|
+
# from Racc grammer file "".
|
5
|
+
#
|
6
|
+
|
7
|
+
require 'racc/parser.rb'
|
8
|
+
class VyattaParser < Racc::Parser
|
9
|
+
|
10
|
+
module_eval(<<'...end parse.y/module_eval...', 'parse.y', 52)
|
11
|
+
def parse(str)
|
12
|
+
@yydebug=true
|
13
|
+
@tokens = str.split(/([\t \n\{\}])/).delete_if{|c|
|
14
|
+
#空白は削除
|
15
|
+
c==" " || c=="\t"
|
16
|
+
}.select{|c|
|
17
|
+
!c.nil? && c!=""
|
18
|
+
}
|
19
|
+
#p @tokens
|
20
|
+
do_parse()
|
21
|
+
end
|
22
|
+
|
23
|
+
def next_token()
|
24
|
+
token = @tokens.shift()
|
25
|
+
#p token
|
26
|
+
case token
|
27
|
+
when "\n"
|
28
|
+
return [:CR,nil]
|
29
|
+
when nil
|
30
|
+
return nil
|
31
|
+
when "{"
|
32
|
+
return ["{",nil]
|
33
|
+
when "}"
|
34
|
+
return ["}",nil]
|
35
|
+
else
|
36
|
+
return [:VAL,token]
|
37
|
+
end
|
38
|
+
end
|
39
|
+
...end parse.y/module_eval...
|
40
|
+
##### State transition tables begin ###
|
41
|
+
|
42
|
+
racc_action_table = [
|
43
|
+
11, 3, 12, 2, 3, 2, 3, 2, 3, 9,
|
44
|
+
15, 3, 17, 18 ]
|
45
|
+
|
46
|
+
racc_action_check = [
|
47
|
+
6, 7, 6, 0, 0, 12, 12, 5, 5, 4,
|
48
|
+
9, 1, 13, 16 ]
|
49
|
+
|
50
|
+
racc_action_pointer = [
|
51
|
+
1, 8, nil, nil, 9, 5, -2, -2, nil, 10,
|
52
|
+
nil, nil, 3, 10, nil, nil, 8, nil, nil ]
|
53
|
+
|
54
|
+
racc_action_default = [
|
55
|
+
-2, -8, -5, -9, -11, -2, -11, -8, -6, -11,
|
56
|
+
-1, -3, -2, -11, -7, 19, -11, -4, -10 ]
|
57
|
+
|
58
|
+
racc_goto_table = [
|
59
|
+
4, 7, 8, 13, nil, 10, nil, 7, 14, nil,
|
60
|
+
nil, nil, 16 ]
|
61
|
+
|
62
|
+
racc_goto_check = [
|
63
|
+
1, 5, 6, 4, nil, 1, nil, 5, 6, nil,
|
64
|
+
nil, nil, 1 ]
|
65
|
+
|
66
|
+
racc_goto_pointer = [
|
67
|
+
nil, 0, nil, nil, -3, 0, 1 ]
|
68
|
+
|
69
|
+
racc_goto_default = [
|
70
|
+
nil, nil, 5, 6, nil, 1, nil ]
|
71
|
+
|
72
|
+
racc_reduce_table = [
|
73
|
+
0, 0, :racc_error,
|
74
|
+
2, 7, :_reduce_1,
|
75
|
+
0, 7, :_reduce_2,
|
76
|
+
2, 8, :_reduce_3,
|
77
|
+
3, 8, :_reduce_4,
|
78
|
+
1, 8, :_reduce_5,
|
79
|
+
2, 9, :_reduce_6,
|
80
|
+
2, 12, :_reduce_7,
|
81
|
+
0, 12, :_reduce_8,
|
82
|
+
1, 11, :_reduce_9,
|
83
|
+
3, 10, :_reduce_10 ]
|
84
|
+
|
85
|
+
racc_reduce_n = 11
|
86
|
+
|
87
|
+
racc_shift_n = 19
|
88
|
+
|
89
|
+
racc_token_table = {
|
90
|
+
false => 0,
|
91
|
+
:error => 1,
|
92
|
+
:CR => 2,
|
93
|
+
:VAL => 3,
|
94
|
+
"{" => 4,
|
95
|
+
"}" => 5 }
|
96
|
+
|
97
|
+
racc_nt_base = 6
|
98
|
+
|
99
|
+
racc_use_result_var = true
|
100
|
+
|
101
|
+
Racc_arg = [
|
102
|
+
racc_action_table,
|
103
|
+
racc_action_check,
|
104
|
+
racc_action_default,
|
105
|
+
racc_action_pointer,
|
106
|
+
racc_goto_table,
|
107
|
+
racc_goto_check,
|
108
|
+
racc_goto_default,
|
109
|
+
racc_goto_pointer,
|
110
|
+
racc_nt_base,
|
111
|
+
racc_reduce_table,
|
112
|
+
racc_token_table,
|
113
|
+
racc_shift_n,
|
114
|
+
racc_reduce_n,
|
115
|
+
racc_use_result_var ]
|
116
|
+
|
117
|
+
Racc_token_to_s_table = [
|
118
|
+
"$end",
|
119
|
+
"error",
|
120
|
+
"CR",
|
121
|
+
"VAL",
|
122
|
+
"\"{\"",
|
123
|
+
"\"}\"",
|
124
|
+
"$start",
|
125
|
+
"stmts",
|
126
|
+
"stmt",
|
127
|
+
"exprss",
|
128
|
+
"group",
|
129
|
+
"expr",
|
130
|
+
"exprs" ]
|
131
|
+
|
132
|
+
Racc_debug_parser = false
|
133
|
+
|
134
|
+
##### State transition tables end #####
|
135
|
+
|
136
|
+
# reduce 0 omitted
|
137
|
+
|
138
|
+
module_eval(<<'.,.,', 'parse.y', 4)
|
139
|
+
def _reduce_1(val, _values, result)
|
140
|
+
result = val[1].unshift(val[0])
|
141
|
+
|
142
|
+
result
|
143
|
+
end
|
144
|
+
.,.,
|
145
|
+
|
146
|
+
module_eval(<<'.,.,', 'parse.y', 8)
|
147
|
+
def _reduce_2(val, _values, result)
|
148
|
+
result = []
|
149
|
+
|
150
|
+
result
|
151
|
+
end
|
152
|
+
.,.,
|
153
|
+
|
154
|
+
module_eval(<<'.,.,', 'parse.y', 13)
|
155
|
+
def _reduce_3(val, _values, result)
|
156
|
+
result = {
|
157
|
+
"values"=>val[0]
|
158
|
+
}
|
159
|
+
|
160
|
+
result
|
161
|
+
end
|
162
|
+
.,.,
|
163
|
+
|
164
|
+
module_eval(<<'.,.,', 'parse.y', 19)
|
165
|
+
def _reduce_4(val, _values, result)
|
166
|
+
result = {
|
167
|
+
"values"=>val[0],
|
168
|
+
"group"=>val[1]
|
169
|
+
}
|
170
|
+
|
171
|
+
result
|
172
|
+
end
|
173
|
+
.,.,
|
174
|
+
|
175
|
+
module_eval(<<'.,.,', 'parse.y', 26)
|
176
|
+
def _reduce_5(val, _values, result)
|
177
|
+
result = nil
|
178
|
+
|
179
|
+
result
|
180
|
+
end
|
181
|
+
.,.,
|
182
|
+
|
183
|
+
module_eval(<<'.,.,', 'parse.y', 31)
|
184
|
+
def _reduce_6(val, _values, result)
|
185
|
+
result = val[1].unshift(val[0])
|
186
|
+
|
187
|
+
result
|
188
|
+
end
|
189
|
+
.,.,
|
190
|
+
|
191
|
+
module_eval(<<'.,.,', 'parse.y', 35)
|
192
|
+
def _reduce_7(val, _values, result)
|
193
|
+
result = val[1].unshift(val[0])
|
194
|
+
|
195
|
+
result
|
196
|
+
end
|
197
|
+
.,.,
|
198
|
+
|
199
|
+
module_eval(<<'.,.,', 'parse.y', 39)
|
200
|
+
def _reduce_8(val, _values, result)
|
201
|
+
result = []
|
202
|
+
|
203
|
+
result
|
204
|
+
end
|
205
|
+
.,.,
|
206
|
+
|
207
|
+
module_eval(<<'.,.,', 'parse.y', 42)
|
208
|
+
def _reduce_9(val, _values, result)
|
209
|
+
result = val[0]
|
210
|
+
result
|
211
|
+
end
|
212
|
+
.,.,
|
213
|
+
|
214
|
+
module_eval(<<'.,.,', 'parse.y', 46)
|
215
|
+
def _reduce_10(val, _values, result)
|
216
|
+
result = val[1]
|
217
|
+
|
218
|
+
result
|
219
|
+
end
|
220
|
+
.,.,
|
221
|
+
|
222
|
+
def _reduce_none(val, _values, result)
|
223
|
+
val[0]
|
224
|
+
end
|
225
|
+
|
226
|
+
end # class VyattaParser
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "vyatta-utils/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "vyatta-utils"
|
7
|
+
s.version = Vyatta::Utils::VERSION
|
8
|
+
s.authors = ["Yoshihiro TAKAHARA"]
|
9
|
+
s.email = ["y.takahara@gmail.com"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{Vyatta utilities}
|
12
|
+
s.description = %q{include vyatta config to command converter}
|
13
|
+
|
14
|
+
s.rubyforge_project = "vyatta-utils"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specify any dependencies here; for example:
|
22
|
+
# s.add_development_dependency "rspec"
|
23
|
+
# s.add_runtime_dependency "rest-client"
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: vyatta-utils
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Yoshihiro TAKAHARA
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2012-01-20 00:00:00 Z
|
19
|
+
dependencies: []
|
20
|
+
|
21
|
+
description: include vyatta config to command converter
|
22
|
+
email:
|
23
|
+
- y.takahara@gmail.com
|
24
|
+
executables:
|
25
|
+
- vyatta-config2command
|
26
|
+
extensions: []
|
27
|
+
|
28
|
+
extra_rdoc_files: []
|
29
|
+
|
30
|
+
files:
|
31
|
+
- .gitignore
|
32
|
+
- Gemfile
|
33
|
+
- README.md
|
34
|
+
- Rakefile
|
35
|
+
- bin/vyatta-config2command
|
36
|
+
- lib/vyatta-utils.rb
|
37
|
+
- lib/vyatta-utils/config.y
|
38
|
+
- lib/vyatta-utils/config_parser.rb
|
39
|
+
- lib/vyatta-utils/version.rb
|
40
|
+
- lib/vyatta-utils/vyattaparser.rb
|
41
|
+
- vyatta-utils.gemspec
|
42
|
+
homepage: ""
|
43
|
+
licenses: []
|
44
|
+
|
45
|
+
post_install_message:
|
46
|
+
rdoc_options: []
|
47
|
+
|
48
|
+
require_paths:
|
49
|
+
- lib
|
50
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
hash: 3
|
56
|
+
segments:
|
57
|
+
- 0
|
58
|
+
version: "0"
|
59
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
hash: 3
|
65
|
+
segments:
|
66
|
+
- 0
|
67
|
+
version: "0"
|
68
|
+
requirements: []
|
69
|
+
|
70
|
+
rubyforge_project: vyatta-utils
|
71
|
+
rubygems_version: 1.8.12
|
72
|
+
signing_key:
|
73
|
+
specification_version: 3
|
74
|
+
summary: Vyatta utilities
|
75
|
+
test_files: []
|
76
|
+
|