arbi 1.0.6 → 1.0.7a
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/lib/arbi.rb +68 -58
- metadata +10 -21
data/lib/arbi.rb
CHANGED
@@ -10,10 +10,9 @@ end
|
|
10
10
|
|
11
11
|
module Arbi
|
12
12
|
|
13
|
-
require '
|
14
|
-
include Getopt
|
13
|
+
require 'optparse'
|
15
14
|
|
16
|
-
VERSION = "1.0.
|
15
|
+
VERSION = "1.0.7a"
|
17
16
|
|
18
17
|
@cmd = []
|
19
18
|
|
@@ -62,16 +61,6 @@ module Arbi
|
|
62
61
|
@server = TCPServer.new(@address, @port)
|
63
62
|
end
|
64
63
|
|
65
|
-
def show_help
|
66
|
-
puts "Arbi Server, USAGE:"
|
67
|
-
puts "\t#{$0} [switches]"
|
68
|
-
puts "\t\t--bind-address|-a\tAddress to bind, default to \"127.0.0.1\""
|
69
|
-
puts "\t\t --port|-p\tPort to use for server, default to 40"
|
70
|
-
puts "\t\t --version|-v\tPrint version and exit"
|
71
|
-
puts "\t\t --help|-h\tPrint this help and exit"
|
72
|
-
exit 0
|
73
|
-
end
|
74
|
-
|
75
64
|
def start
|
76
65
|
@servert = Thread.new do
|
77
66
|
while(session = @server.accept)
|
@@ -100,22 +89,35 @@ module Arbi
|
|
100
89
|
private
|
101
90
|
|
102
91
|
def parse_args
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
puts "Arguments error: #{e}"
|
112
|
-
exit 0
|
113
|
-
end
|
92
|
+
OptionParser.new do |o|
|
93
|
+
|
94
|
+
o.program_name = 'arbid'
|
95
|
+
o.banner = 'Arbi server, USAGE:'
|
96
|
+
|
97
|
+
o.on('-a', '--bind-address ADDR', 'Address to bind, default to "127.0.0.1"') do |addr|
|
98
|
+
@address = addr
|
99
|
+
end
|
114
100
|
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
101
|
+
o.on('-p', '--port PORT', 'Port to use for server, default to 40') do |port|
|
102
|
+
@port = port
|
103
|
+
end
|
104
|
+
|
105
|
+
o.on('-V', '--version', 'Print version and exit') do
|
106
|
+
puts Arbi::show_version
|
107
|
+
exit 0
|
108
|
+
end
|
109
|
+
|
110
|
+
o.on_tail('-h', '--help', 'Print this help and exit') do
|
111
|
+
puts o.to_s
|
112
|
+
exit 0
|
113
|
+
end
|
114
|
+
|
115
|
+
end.parse!
|
116
|
+
|
117
|
+
rescue OptionParser::MissingArgument
|
118
|
+
puts "At least one argument is required for this option."
|
119
|
+
puts "See help for details."
|
120
|
+
exit -1
|
119
121
|
end
|
120
122
|
|
121
123
|
def new_client session
|
@@ -174,6 +176,10 @@ module Arbi
|
|
174
176
|
@command = "help\r\nquit\r\n"
|
175
177
|
parse_args
|
176
178
|
@sock = TCPSocket.new(@address, @port)
|
179
|
+
|
180
|
+
rescue Errno::ECONNREFUSED
|
181
|
+
puts "You have to start arbid demon first, or specify a correct port."
|
182
|
+
exit -2
|
177
183
|
end
|
178
184
|
|
179
185
|
def start
|
@@ -210,40 +216,44 @@ module Arbi
|
|
210
216
|
close
|
211
217
|
end
|
212
218
|
|
213
|
-
def show_help
|
214
|
-
puts "Arbi client:"
|
215
|
-
puts "\tUSAGE: #{$0} [switches]"
|
216
|
-
puts "\t\t --help|-h\tshow this helps"
|
217
|
-
puts "\t\t--version|-v\tshow version of arbi"
|
218
|
-
puts "\t\t--address|-a\tset the address to connect, default to 'localhost'"
|
219
|
-
puts "\t\t --port|-p\tset the port to connect, default to 40"
|
220
|
-
puts "\t\t--command|-c\tset commands to execute, defaults is 'help'"
|
221
|
-
exit 0
|
222
|
-
end
|
223
|
-
|
224
219
|
private
|
225
220
|
|
226
221
|
def parse_args
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
222
|
+
OptionParser.new do |o|
|
223
|
+
|
224
|
+
o.program_name = 'arbi'
|
225
|
+
o.banner = 'Arbi client, USAGE:'
|
226
|
+
|
227
|
+
o.on('-c', '--command COMMANDS', Array, 'Set commands to execute, default is \'help\'') do |cmd|
|
228
|
+
cmd.delete('quit')
|
229
|
+
@command = (cmd&cmd).push('quit').inject(''){|str, cmd| str<<"#{cmd}\r\n"}
|
230
|
+
end
|
231
|
+
|
232
|
+
o.on('-a', '--address ADDR', 'Set address to connect, default to "127.0.0.1"') do |addr|
|
233
|
+
@address = addr
|
234
|
+
end
|
235
|
+
|
236
|
+
o.on('-p', '--port PORT', 'Set port to connect, default to 40') do |port|
|
237
|
+
@port = port
|
238
|
+
end
|
239
|
+
|
240
|
+
o.on('-V', '--version', 'Print version and exit') do
|
241
|
+
puts Arbi::show_version
|
242
|
+
exit 0
|
243
|
+
end
|
244
|
+
|
245
|
+
o.on_tail('-h', '--help', 'Print this help and exit') do
|
246
|
+
@help = o.to_s
|
247
|
+
puts @help
|
248
|
+
exit 0
|
249
|
+
end
|
250
|
+
|
251
|
+
end.parse!
|
240
252
|
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
@command = "#{opts["c"]}".gsub(/,+/, ',').gsub(/\s+/, '').split(/,/).
|
246
|
-
uniq.delete_if{|x|x=~/^quit$/i}.push("quit\r\n").join("\r\n") if opts["c"]
|
253
|
+
rescue OptionParser::MissingArgument
|
254
|
+
puts "At least one argument is required for this option."
|
255
|
+
puts "See help for details."
|
256
|
+
exit -1
|
247
257
|
end
|
248
258
|
end
|
249
259
|
end
|
metadata
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arbi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
4
|
+
prerelease: true
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 1.0.
|
8
|
+
- 7a
|
9
|
+
version: 1.0.7a
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- shura
|
@@ -14,11 +14,11 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-09-
|
17
|
+
date: 2010-09-09 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
name:
|
21
|
+
name: sys-filesystem
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
24
|
none: false
|
@@ -30,19 +30,6 @@ dependencies:
|
|
30
30
|
version: "0"
|
31
31
|
type: :runtime
|
32
32
|
version_requirements: *id001
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: sys-filesystem
|
35
|
-
prerelease: false
|
36
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
-
none: false
|
38
|
-
requirements:
|
39
|
-
- - ">="
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
segments:
|
42
|
-
- 0
|
43
|
-
version: "0"
|
44
|
-
type: :runtime
|
45
|
-
version_requirements: *id002
|
46
33
|
description: ""
|
47
34
|
email: shura1991@gmail.com
|
48
35
|
executables:
|
@@ -83,11 +70,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
83
70
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
71
|
none: false
|
85
72
|
requirements:
|
86
|
-
- - "
|
73
|
+
- - ">"
|
87
74
|
- !ruby/object:Gem::Version
|
88
75
|
segments:
|
89
|
-
-
|
90
|
-
|
76
|
+
- 1
|
77
|
+
- 3
|
78
|
+
- 1
|
79
|
+
version: 1.3.1
|
91
80
|
requirements: []
|
92
81
|
|
93
82
|
rubyforge_project:
|