rubycon 0.2 → 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.
- checksums.yaml +7 -0
- data/.ruby-version +1 -0
- data/.travis.yml +20 -0
- data/CHANGELOG.md +11 -0
- data/README.md +24 -9
- data/Rakefile +4 -42
- data/bin/rubycon +32 -21
- data/lib/rubycon.rb +5 -7
- data/lib/rubycon/config.rb +6 -2
- data/lib/rubycon/errors/config_error.rb +4 -0
- data/lib/rubycon/errors/server_error.rb +4 -0
- data/lib/rubycon/rcon_session.rb +2 -2
- data/lib/rubycon/server.rb +4 -3
- data/lib/rubycon/version.rb +1 -1
- data/rubycon.gemspec +14 -9
- data/test/rubycon/server_test.rb +34 -0
- data/test/rubycon/version_test.rb +11 -0
- data/test/test_helper.rb +7 -6
- metadata +86 -107
- data/features/rubycon.feature +0 -8
- data/features/step_definitions/rubycon_steps.rb +0 -6
- data/features/support/env.rb +0 -15
- data/rubycon.rdoc +0 -5
- data/test/default_test.rb +0 -14
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b79ff99d0d798079fc09ca6f650abea6fa1d729d
|
4
|
+
data.tar.gz: 3cdee1d9c3a2df990d6e5046df515f77d7e3f3fa
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: db7797079d16c6af84770728f13efec337bebc7ccd67db88541d3057388e2296d6914a267b92a6867fadb498684067e514c643bf593421cff6b6eeddb1a960a6
|
7
|
+
data.tar.gz: 9a9dc4cebdf8a54722f90047698a4c730a69494ef9e0df6d3fa968fda8e756e5d36c79352a1f34522140e9483d8be5978e77be48ddee2fd2f1e744d09fd60357
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.0.0-p247
|
data/.travis.yml
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- ruby-head
|
4
|
+
- 2.0.0
|
5
|
+
- 1.9.3
|
6
|
+
- 1.9.2
|
7
|
+
- jruby-head
|
8
|
+
- jruby-19mode
|
9
|
+
- rbx-19mode
|
10
|
+
|
11
|
+
matrix:
|
12
|
+
allow_failures:
|
13
|
+
- rvm: ruby-head
|
14
|
+
- rvm: jruby-head
|
15
|
+
|
16
|
+
script: bundle exec rake test
|
17
|
+
|
18
|
+
before_install:
|
19
|
+
- sudo apt-get update -qq
|
20
|
+
- sudo apt-get install libreadline-dev
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# 0.3
|
2
|
+
* added Ruby 2.0 support
|
3
|
+
* `rubycon rm` supports deletion of multiple servers now
|
4
|
+
* `rubycon execute` better seperator for output
|
5
|
+
* `rubycon console` now shows which server you are connected to
|
6
|
+
* `rubycon add` won't let you add identical servers anymore
|
7
|
+
* dropped bzip dependency
|
8
|
+
|
9
|
+
# 0.2
|
10
|
+
|
11
|
+
* Inital release
|
data/README.md
CHANGED
@@ -1,21 +1,25 @@
|
|
1
|
+
# About
|
2
|
+
|
1
3
|
Rubycon is a CLI for managing Source dedicated game servers (TF2, CS:S...). Think of it as a [HSLW](http://www.hlsw.org) clone, but terminal-based.
|
2
4
|
|
3
|
-

|
4
6
|
|
5
7
|
Features:
|
6
8
|
|
7
|
-
* RCON session with auto completion
|
9
|
+
* RCON session with auto completion :exclamation:
|
8
10
|
* Overview of all your servers
|
9
|
-
* Bulk execution of rcon commands
|
11
|
+
* Bulk execution of rcon commands :boom:
|
10
12
|
* Start game client and join servers from the command line
|
11
13
|
|
14
|
+
Follow this gem on [Twitter](https://twitter.com/rubycon_cli).
|
15
|
+
|
12
16
|
# Installation
|
13
17
|
|
14
|
-
Rubycon was written in Ruby, Version 1.9.
|
18
|
+
Rubycon was written in Ruby, Version 1.9.2 is minimum to run rubycon. (`ruby -v`).
|
15
19
|
Make sure to have the following libraries installed:
|
16
20
|
|
17
|
-
* RHEL based: `yum install readline-devel
|
18
|
-
* Debian based: `apt-get install libreadline-dev
|
21
|
+
* RHEL based: `yum install readline-devel`
|
22
|
+
* Debian based: `apt-get install libreadline-dev`
|
19
23
|
|
20
24
|
Install rubycon with the following command:
|
21
25
|
|
@@ -71,8 +75,8 @@ CPU In (KB/s) Out (KB/s) Uptime Map changes FPS Players Connects
|
|
71
75
|
|
72
76
|
Need further help?
|
73
77
|
`$ rubycon help`
|
74
|
-
`$ rubycon execute
|
75
|
-
`$ rubycon rm
|
78
|
+
`$ rubycon help execute`
|
79
|
+
`$ rubycon help rm`
|
76
80
|
...
|
77
81
|
|
78
82
|
# Contributing
|
@@ -81,4 +85,15 @@ Need further help?
|
|
81
85
|
* Create your feature branch (`git checkout -b my-new-feature`)
|
82
86
|
* Commit your changes (`git commit -am 'Add some feature'`)
|
83
87
|
* Push to the branch (`git push origin my-new-feature`)
|
84
|
-
* Create new Pull Request
|
88
|
+
* Create new Pull Request
|
89
|
+
|
90
|
+
# Code Status
|
91
|
+
|
92
|
+
* [](http://badge.fury.io/rb/rubycon)
|
93
|
+
* [](https://travis-ci.org/nTraum/rubycon)
|
94
|
+
* [](https://gemnasium.com/nTraum/rubycon)
|
95
|
+
* [](https://codeclimate.com/github/nTraum/rubycon)
|
96
|
+
|
97
|
+
# License
|
98
|
+
|
99
|
+
rubycon is released under the [MIT](http://opensource.org/licenses/MIT) License.
|
data/Rakefile
CHANGED
@@ -1,44 +1,6 @@
|
|
1
|
-
require 'rake/clean'
|
2
|
-
require 'rubygems'
|
3
|
-
require 'rubygems/package_task'
|
4
|
-
require 'rdoc/task'
|
5
|
-
require 'cucumber'
|
6
|
-
require 'cucumber/rake/task'
|
7
|
-
Rake::RDocTask.new do |rd|
|
8
|
-
rd.main = "README.rdoc"
|
9
|
-
rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
|
10
|
-
rd.title = 'Your application title'
|
11
|
-
end
|
12
|
-
|
13
|
-
spec = eval(File.read('rubycon.gemspec'))
|
14
|
-
|
15
|
-
Gem::PackageTask.new(spec) do |pkg|
|
16
|
-
end
|
17
|
-
CUKE_RESULTS = 'results.html'
|
18
|
-
CLEAN << CUKE_RESULTS
|
19
|
-
desc 'Run features'
|
20
|
-
Cucumber::Rake::Task.new(:features) do |t|
|
21
|
-
opts = "features --format html -o #{CUKE_RESULTS} --format progress -x"
|
22
|
-
opts += " --tags #{ENV['TAGS']}" if ENV['TAGS']
|
23
|
-
t.cucumber_opts = opts
|
24
|
-
t.fork = false
|
25
|
-
end
|
26
|
-
|
27
|
-
desc 'Run features tagged as work-in-progress (@wip)'
|
28
|
-
Cucumber::Rake::Task.new('features:wip') do |t|
|
29
|
-
tag_opts = ' --tags ~@pending'
|
30
|
-
tag_opts = ' --tags @wip'
|
31
|
-
t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty -x -s#{tag_opts}"
|
32
|
-
t.fork = false
|
33
|
-
end
|
34
|
-
|
35
|
-
task :cucumber => :features
|
36
|
-
task 'cucumber:wip' => 'features:wip'
|
37
|
-
task :wip => 'features:wip'
|
38
1
|
require 'rake/testtask'
|
39
|
-
Rake::TestTask.new do |t|
|
40
|
-
t.libs << "test"
|
41
|
-
t.test_files = FileList['test/*_test.rb']
|
42
|
-
end
|
43
2
|
|
44
|
-
|
3
|
+
Rake::TestTask.new do |t|
|
4
|
+
t.libs << 'test'
|
5
|
+
t.pattern = "test/**/*_test.rb"
|
6
|
+
end
|
data/bin/rubycon
CHANGED
@@ -9,7 +9,7 @@ rescue LoadError => e
|
|
9
9
|
end
|
10
10
|
include GLI::App
|
11
11
|
|
12
|
-
program_desc 'CLI to manage your Source dedicated game servers
|
12
|
+
program_desc 'CLI to manage your Source dedicated game servers'
|
13
13
|
version Rubycon::VERSION
|
14
14
|
|
15
15
|
flag [:c, :config], :default_value => File.join(ENV['HOME'], '.config', 'rubycon', 'rubycon.yml'),
|
@@ -18,7 +18,7 @@ flag [:c, :config], :default_value => File.join(ENV['HOME'], '.config', 'rubycon
|
|
18
18
|
desc 'adds a new server'
|
19
19
|
arg_name 'ALIAS'
|
20
20
|
command :add do |c|
|
21
|
-
c.flag
|
21
|
+
c.flag [:a, :address], :arg_name => 'HOSTNAME',
|
22
22
|
:desc => 'hostname or IP'
|
23
23
|
|
24
24
|
c.flag [:p, :port], :default_value => 27015,
|
@@ -30,27 +30,36 @@ command :add do |c|
|
|
30
30
|
:desc => 'Rcon password'
|
31
31
|
|
32
32
|
c.action do |g, o, args|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
33
|
+
begin
|
34
|
+
s = Rubycon::Server.new(args.first, o[:a], o[:p], o[:r])
|
35
|
+
$config.add_server s
|
36
|
+
exit_now!("ALIAS #{args.first}` already used") if $config.find_by_name args.first
|
37
|
+
exit_now!("Server #{o[:a]}:#{o[:p]} already added") if $config.find_by_host_and_port o[:a], o[:p]
|
38
|
+
|
39
|
+
rescue Rubycon::ServerError, Rubycon::ConfigError => e
|
40
|
+
puts e.message
|
41
|
+
end
|
39
42
|
end
|
40
43
|
end
|
41
44
|
|
42
|
-
desc 'deletes
|
43
|
-
arg_name 'ALIAS'
|
45
|
+
desc 'deletes specified server(s)'
|
46
|
+
arg_name 'ALIAS[ ALIAS]*'
|
44
47
|
command :rm do |c|
|
45
48
|
c. switch [:a, :all], :negatable => false,
|
46
49
|
:desc => 'Deletes all servers'
|
47
50
|
|
48
51
|
c.action do |g, o, args|
|
49
52
|
if o[:a]
|
50
|
-
|
53
|
+
$config.delete_all_servers
|
51
54
|
else
|
52
55
|
exit_now!('ALIAS is required') if args.empty?
|
53
|
-
|
56
|
+
servers = []
|
57
|
+
args.each do |arg|
|
58
|
+
server = $config.find_by_name arg
|
59
|
+
exit_now!("Unknown server alias: #{arg}") unless server
|
60
|
+
servers << server
|
61
|
+
end
|
62
|
+
servers.each{|server| $config.delete_server server.name}
|
54
63
|
end
|
55
64
|
end
|
56
65
|
end
|
@@ -58,10 +67,10 @@ end
|
|
58
67
|
desc 'lists all servers'
|
59
68
|
command :list do |c|
|
60
69
|
c.flag [:s, :spacing], :default_value => 8,
|
61
|
-
|
62
|
-
|
70
|
+
:desc => 'Amount of whitespace between the columns',
|
71
|
+
:type => Integer
|
63
72
|
c.action do |g, o, args|
|
64
|
-
exit_now!('No servers added yet. Use `rubycon add` to add a new server
|
73
|
+
exit_now!('No servers added yet. Use `rubycon add` to add a new server') if $config.servers.empty?
|
65
74
|
|
66
75
|
server_infos = Parallel.map($config.servers, :in_threads => $config.servers.size) do |s|
|
67
76
|
Rubycon::ServerInfo.new s
|
@@ -70,7 +79,7 @@ command :list do |c|
|
|
70
79
|
name_max_width = ($config.servers.map {|s| s.name.length}).max
|
71
80
|
map_max_width = (server_infos.map{|i| i.map.length}).max
|
72
81
|
players_max_width = (server_infos.map{|i| "#{i.players_count}/#{i.players_max}".length}).max
|
73
|
-
ping_max_width = (server_infos.map{|i|
|
82
|
+
ping_max_width = (server_infos.map{|i| i.ping.to_s.length}).max
|
74
83
|
|
75
84
|
puts "Server".ljust(name_max_width).bold + "Map".rjust(map_max_width + o[:s]).bold +
|
76
85
|
"Players".rjust(players_max_width + o[:s]).bold +
|
@@ -85,7 +94,7 @@ command :list do |c|
|
|
85
94
|
puts s.name.ljust(name_max_width) + i.map.rjust(map_max_width + o[:s]) +
|
86
95
|
"#{i.players_count}/#{i.players_max}".rjust(players_max_width + o[:s]) +
|
87
96
|
i.ping.to_s.rjust(ping_max_width + o[:s])
|
88
|
-
|
97
|
+
end
|
89
98
|
end
|
90
99
|
end
|
91
100
|
end
|
@@ -97,7 +106,7 @@ command :console do |c|
|
|
97
106
|
exit_now!('ALIAS is required') if args.empty?
|
98
107
|
server = $config.find_by_name args.first
|
99
108
|
exit_now!("Unknown server alias: #{args.first}") if server.nil?
|
100
|
-
puts 'Use CTRL+D to exit
|
109
|
+
puts 'Use CTRL+D to exit'
|
101
110
|
Rubycon::RconSession.new server
|
102
111
|
end
|
103
112
|
end
|
@@ -114,8 +123,8 @@ command :execute do |c|
|
|
114
123
|
if o[:a]
|
115
124
|
servers = $config.servers
|
116
125
|
else
|
117
|
-
servers = []
|
118
126
|
exit_now!('ALIAS is required') if args.empty?
|
127
|
+
servers = []
|
119
128
|
args.each do |arg|
|
120
129
|
server = $config.find_by_name arg
|
121
130
|
exit_now!("Unknown server alias: #{arg}") unless server
|
@@ -129,10 +138,12 @@ command :execute do |c|
|
|
129
138
|
responses[server.name] = executor.response
|
130
139
|
end
|
131
140
|
|
141
|
+
max_width = responses.each_value.map{|response|response.split(/\r?\n/).map{|line| line.length}.max}.max
|
132
142
|
responses.each_pair do |name, response|
|
133
143
|
puts "#{name.bold}:"
|
134
144
|
puts response
|
135
|
-
puts
|
145
|
+
puts
|
146
|
+
puts "-" * max_width
|
136
147
|
end
|
137
148
|
end
|
138
149
|
end
|
@@ -155,7 +166,7 @@ command :connect do |c|
|
|
155
166
|
when /linux|bsd/
|
156
167
|
system "xdg-open #{uri}"
|
157
168
|
else
|
158
|
-
exit_now! 'Cannot connect to server. Couldn\'t identify your OS
|
169
|
+
exit_now! 'Cannot connect to server. Couldn\'t identify your OS'
|
159
170
|
end
|
160
171
|
end
|
161
172
|
end
|
data/lib/rubycon.rb
CHANGED
@@ -2,11 +2,9 @@ require 'colored'
|
|
2
2
|
require 'fileutils'
|
3
3
|
require 'parallel'
|
4
4
|
require 'readline'
|
5
|
-
require 'rubycon/config.rb'
|
6
|
-
require 'rubycon/rcon_executor.rb'
|
7
|
-
require 'rubycon/rcon_session.rb'
|
8
|
-
require 'rubycon/server.rb'
|
9
|
-
require 'rubycon/server_info.rb'
|
10
|
-
require 'rubycon/version.rb'
|
11
5
|
require 'steam-condenser'
|
12
|
-
require 'yaml'
|
6
|
+
require 'yaml'
|
7
|
+
|
8
|
+
Dir[File.join(File.dirname(__FILE__), 'rubycon', '**', '*.rb')].each {|file| require file }
|
9
|
+
|
10
|
+
include Rubycon
|
data/lib/rubycon/config.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
module Rubycon
|
2
2
|
class Config
|
3
|
-
attr_reader
|
4
|
-
attr_accessor
|
3
|
+
attr_reader :path, :servers
|
5
4
|
|
6
5
|
def initialize(path)
|
7
6
|
@servers = []
|
@@ -29,6 +28,7 @@ module Rubycon
|
|
29
28
|
end
|
30
29
|
|
31
30
|
def add_server(server)
|
31
|
+
raise ConfigError, "ALIAS #{server.name} already used." if find_by_name server.name
|
32
32
|
@servers << server
|
33
33
|
save
|
34
34
|
end
|
@@ -47,5 +47,9 @@ module Rubycon
|
|
47
47
|
def find_by_name(name)
|
48
48
|
@servers.find {|server| name.downcase == server.name.downcase}
|
49
49
|
end
|
50
|
+
|
51
|
+
def find_by_host_and_port(address, port)
|
52
|
+
@servers.find {|server| port == server.port and server.address.downcase == address.downcase}
|
53
|
+
end
|
50
54
|
end
|
51
55
|
end
|
data/lib/rubycon/rcon_session.rb
CHANGED
@@ -54,7 +54,7 @@ module Rubycon
|
|
54
54
|
puts 'Connection refused. Wrong host?'
|
55
55
|
exit
|
56
56
|
rescue SteamCondenser::TimeoutError
|
57
|
-
puts '
|
57
|
+
puts 'Connection timed out while sending command, reconnecting...'
|
58
58
|
reconnect
|
59
59
|
end
|
60
60
|
end
|
@@ -77,7 +77,7 @@ module Rubycon
|
|
77
77
|
end
|
78
78
|
|
79
79
|
def readline_with_history
|
80
|
-
line = Readline.readline("> ", true)
|
80
|
+
line = Readline.readline("#{@server_info.name}> ", true)
|
81
81
|
return nil if line.nil?
|
82
82
|
if line =~ /^\s*$/ or Readline::HISTORY.to_a[-2] == line
|
83
83
|
Readline::HISTORY.pop
|
data/lib/rubycon/server.rb
CHANGED
@@ -7,10 +7,11 @@ module Rubycon
|
|
7
7
|
@address = address
|
8
8
|
@port = port
|
9
9
|
@rcon = rcon
|
10
|
-
end
|
11
10
|
|
12
|
-
|
13
|
-
|
11
|
+
raise ServerError, 'ALIAS is required.' unless @name && !@name.empty?
|
12
|
+
raise ServerError, 'HOSTNAME is required.' unless @address && !@address.empty?
|
13
|
+
raise ServerError, 'PORT is required.' unless @port
|
14
|
+
raise ServerError, 'RCON is required' unless @rcon
|
14
15
|
end
|
15
16
|
end
|
16
17
|
end
|
data/lib/rubycon/version.rb
CHANGED
data/rubycon.gemspec
CHANGED
@@ -2,24 +2,29 @@
|
|
2
2
|
require File.join([File.dirname(__FILE__),'lib','rubycon','version.rb'])
|
3
3
|
spec = Gem::Specification.new do |s|
|
4
4
|
s.name = 'rubycon'
|
5
|
+
s.license = 'MIT'
|
5
6
|
s.version = Rubycon::VERSION
|
6
7
|
s.author = 'Philipp Preß'
|
7
8
|
s.email = 'philipp.press@googlemail.com'
|
8
9
|
s.homepage = 'https://github.com/nTraum/rubycon'
|
9
10
|
s.platform = Gem::Platform::RUBY
|
10
11
|
s.summary = 'CLI to manage your Source dedicated game servers.'
|
11
|
-
s.description =
|
12
|
+
s.description = s.summary
|
12
13
|
s.files = `git ls-files`.split($/)
|
14
|
+
s.test_files = Dir.glob("{spec,test}/**/*.rb")
|
13
15
|
|
16
|
+
s.required_ruby_version = '>= 1.9.2'
|
14
17
|
s.require_paths << 'lib'
|
15
18
|
s.bindir = 'bin'
|
16
19
|
s.executables << 'rubycon'
|
17
|
-
s.
|
18
|
-
s.
|
19
|
-
s.
|
20
|
-
s.
|
21
|
-
s.
|
22
|
-
s.
|
23
|
-
s.
|
24
|
-
s.
|
20
|
+
s.requirements << 'libreadline-dev'
|
21
|
+
s.add_dependency 'colored', '~> 1.2'
|
22
|
+
s.add_dependency 'gli', '~> 2.5'
|
23
|
+
s.add_dependency 'highline', '~> 1.6'
|
24
|
+
s.add_dependency 'parallel', '~> 0.7'
|
25
|
+
s.add_dependency 'steam-condenser', '~> 1.3'
|
26
|
+
s.add_development_dependency 'minitest'
|
27
|
+
s.add_development_dependency 'coveralls'
|
28
|
+
s.add_development_dependency 'minitest-reporters'
|
29
|
+
s.add_development_dependency 'rake'
|
25
30
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require_relative File.join(['..','test_helper'])
|
2
|
+
|
3
|
+
describe Server do
|
4
|
+
describe 'when providing no name' do
|
5
|
+
it 'must raise an error' do
|
6
|
+
proc {Rubycon::Server.new(nil, 'foo', 27015, 'bar')}.must_raise ServerError
|
7
|
+
end
|
8
|
+
end
|
9
|
+
describe 'when providing an empty name' do
|
10
|
+
it 'must raise an error' do
|
11
|
+
proc {Rubycon::Server.new('', 'foo', 27015, 'bar')}.must_raise ServerError
|
12
|
+
end
|
13
|
+
end
|
14
|
+
describe 'when providing no address' do
|
15
|
+
it 'must raise an error' do
|
16
|
+
proc {Rubycon::Server.new('foo', nil, 27015, 'bar')}.must_raise ServerError
|
17
|
+
end
|
18
|
+
end
|
19
|
+
describe 'when providing an empty address' do
|
20
|
+
it 'must raise an error' do
|
21
|
+
proc {Rubycon::Server.new('foo', '', 27015, 'bar')}.must_raise ServerError
|
22
|
+
end
|
23
|
+
end
|
24
|
+
describe 'when providing no rcon password' do
|
25
|
+
it 'must raise an error' do
|
26
|
+
proc {Rubycon::Server.new('foo', 'bar', 27015, nil)}.must_raise ServerError
|
27
|
+
end
|
28
|
+
end
|
29
|
+
describe 'when providing an empty rcon password' do
|
30
|
+
it 'must accept that security issue' do
|
31
|
+
Rubycon::Server.new('foo', 'bar', 27015, '')
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
require '
|
1
|
+
require 'coveralls'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'minitest/reporters'
|
4
|
+
require 'minitest/spec'
|
2
5
|
|
3
|
-
|
6
|
+
MiniTest::Reporters.use! MiniTest::Reporters::SpecReporter.new
|
4
7
|
|
5
|
-
|
8
|
+
Coveralls.wear!
|
6
9
|
|
7
|
-
|
8
|
-
|
9
|
-
end
|
10
|
+
require File.join([File.dirname(__FILE__),'..','lib','rubycon.rb'])
|
metadata
CHANGED
@@ -1,169 +1,142 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubycon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
5
|
-
prerelease:
|
4
|
+
version: '0.3'
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Philipp Preß
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-08-28 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
14
|
+
name: colored
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
22
|
-
type: :
|
19
|
+
version: '1.2'
|
20
|
+
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
26
|
+
version: '1.2'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
28
|
+
name: gli
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: '
|
38
|
-
type: :
|
33
|
+
version: '2.5'
|
34
|
+
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: '
|
40
|
+
version: '2.5'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
42
|
+
name: highline
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
54
|
-
type: :
|
47
|
+
version: '1.6'
|
48
|
+
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
54
|
+
version: '1.6'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
56
|
+
name: parallel
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
61
|
+
version: '0.7'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
68
|
+
version: '0.7'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
70
|
+
name: steam-condenser
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
85
|
-
version: 1.
|
75
|
+
version: '1.3'
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
93
|
-
version: 1.
|
82
|
+
version: '1.3'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
84
|
+
name: minitest
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- - '
|
87
|
+
- - '>='
|
100
88
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
102
|
-
type: :
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- - '
|
94
|
+
- - '>='
|
108
95
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
96
|
+
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
98
|
+
name: coveralls
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- - '
|
101
|
+
- - '>='
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
118
|
-
type: :
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- - '
|
108
|
+
- - '>='
|
124
109
|
- !ruby/object:Gem::Version
|
125
|
-
version: '
|
110
|
+
version: '0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
112
|
+
name: minitest-reporters
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- - '
|
115
|
+
- - '>='
|
132
116
|
- !ruby/object:Gem::Version
|
133
|
-
version: 0
|
134
|
-
type: :
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
MyServer\nversion : 1797820/24 5331 secure\nudp/ip : 192.168.0.1:27015 (public
|
157
|
-
ip: 192.168.0.1)\naccount : not logged in (No account specified)\nmap : ctf_2fort
|
158
|
-
at: 0 x, 0 y, 0 z\nsourcetv: port 27020, delay 90.0s\nplayers : 0 (25 max)\n\n#
|
159
|
-
userid name uniqueid connected ping loss state adr\n>\n```\n\nNeed
|
160
|
-
stats from all your servers? Yes sir:\n\n```\n$ rubycon execute --command=stats
|
161
|
-
--all\nmy_server:\nCPU In (KB/s) Out (KB/s) Uptime Map changes FPS Players
|
162
|
-
\ Connects\n0.00 0.00 0.00 5093 7 62.44 0 1\n---------------------------------\n```\n\nNeed
|
163
|
-
further help?\n`$ rubycon help`\n`$ rubycon execute help`\n`$ rubycon rm help`\n...\n\n#
|
164
|
-
Contributing\n\n* Fork it\n* Create your feature branch (`git checkout -b my-new-feature`)\n*
|
165
|
-
Commit your changes (`git commit -am 'Add some feature'`)\n* Push to the branch
|
166
|
-
(`git push origin my-new-feature`)\n* Create new Pull Request"
|
121
|
+
requirements:
|
122
|
+
- - '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rake
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
description: CLI to manage your Source dedicated game servers.
|
167
140
|
email: philipp.press@googlemail.com
|
168
141
|
executables:
|
169
142
|
- rubycon
|
@@ -171,47 +144,53 @@ extensions: []
|
|
171
144
|
extra_rdoc_files: []
|
172
145
|
files:
|
173
146
|
- .gitignore
|
147
|
+
- .ruby-version
|
148
|
+
- .travis.yml
|
149
|
+
- CHANGELOG.md
|
174
150
|
- Gemfile
|
175
151
|
- README.md
|
176
152
|
- Rakefile
|
177
153
|
- bin/rubycon
|
178
|
-
- features/rubycon.feature
|
179
|
-
- features/step_definitions/rubycon_steps.rb
|
180
|
-
- features/support/env.rb
|
181
154
|
- lib/rubycon.rb
|
182
155
|
- lib/rubycon/config.rb
|
156
|
+
- lib/rubycon/errors/config_error.rb
|
157
|
+
- lib/rubycon/errors/server_error.rb
|
183
158
|
- lib/rubycon/rcon_executor.rb
|
184
159
|
- lib/rubycon/rcon_session.rb
|
185
160
|
- lib/rubycon/server.rb
|
186
161
|
- lib/rubycon/server_info.rb
|
187
162
|
- lib/rubycon/version.rb
|
188
163
|
- rubycon.gemspec
|
189
|
-
- rubycon.
|
190
|
-
- test/
|
164
|
+
- test/rubycon/server_test.rb
|
165
|
+
- test/rubycon/version_test.rb
|
191
166
|
- test/test_helper.rb
|
192
167
|
homepage: https://github.com/nTraum/rubycon
|
193
|
-
licenses:
|
168
|
+
licenses:
|
169
|
+
- MIT
|
170
|
+
metadata: {}
|
194
171
|
post_install_message:
|
195
172
|
rdoc_options: []
|
196
173
|
require_paths:
|
197
174
|
- lib
|
198
175
|
- lib
|
199
176
|
required_ruby_version: !ruby/object:Gem::Requirement
|
200
|
-
none: false
|
201
177
|
requirements:
|
202
|
-
- -
|
178
|
+
- - '>='
|
203
179
|
- !ruby/object:Gem::Version
|
204
|
-
version:
|
180
|
+
version: 1.9.2
|
205
181
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
|
-
none: false
|
207
182
|
requirements:
|
208
|
-
- -
|
183
|
+
- - '>='
|
209
184
|
- !ruby/object:Gem::Version
|
210
185
|
version: '0'
|
211
|
-
requirements:
|
186
|
+
requirements:
|
187
|
+
- libreadline-dev
|
212
188
|
rubyforge_project:
|
213
|
-
rubygems_version:
|
189
|
+
rubygems_version: 2.0.3
|
214
190
|
signing_key:
|
215
|
-
specification_version:
|
191
|
+
specification_version: 4
|
216
192
|
summary: CLI to manage your Source dedicated game servers.
|
217
|
-
test_files:
|
193
|
+
test_files:
|
194
|
+
- test/rubycon/server_test.rb
|
195
|
+
- test/rubycon/version_test.rb
|
196
|
+
- test/test_helper.rb
|
data/features/rubycon.feature
DELETED
data/features/support/env.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'aruba/cucumber'
|
2
|
-
|
3
|
-
ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
|
4
|
-
LIB_DIR = File.join(File.expand_path(File.dirname(__FILE__)),'..','..','lib')
|
5
|
-
|
6
|
-
Before do
|
7
|
-
# Using "announce" causes massive warnings on 1.9.2
|
8
|
-
@puts = true
|
9
|
-
@original_rubylib = ENV['RUBYLIB']
|
10
|
-
ENV['RUBYLIB'] = LIB_DIR + File::PATH_SEPARATOR + ENV['RUBYLIB'].to_s
|
11
|
-
end
|
12
|
-
|
13
|
-
After do
|
14
|
-
ENV['RUBYLIB'] = @original_rubylib
|
15
|
-
end
|
data/rubycon.rdoc
DELETED