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.
@@ -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
@@ -0,0 +1 @@
1
+ 2.0.0-p247
@@ -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
@@ -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
- ![Screenshot](http://i.imgur.com/cto9CnT.png)
5
+ ![Screenshot](http://i.imgur.com/k8q3zXO.png)
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.3 is minimum to run rubycon. (`ruby -v`).
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 bzip2-devel`
18
- * Debian based: `apt-get install libreadline-dev libbz2-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 help`
75
- `$ rubycon rm help`
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
+ * [![Gem Version](https://badge.fury.io/rb/rubycon.png)](http://badge.fury.io/rb/rubycon)
93
+ * [![Build Status](https://travis-ci.org/nTraum/rubycon.png?branch=master)](https://travis-ci.org/nTraum/rubycon)
94
+ * [![Dependency Status](https://gemnasium.com/nTraum/rubycon.png)](https://gemnasium.com/nTraum/rubycon)
95
+ * [![Code Climate](https://codeclimate.com/github/nTraum/rubycon.png)](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
- task :default => [:test,:features]
3
+ Rake::TestTask.new do |t|
4
+ t.libs << 'test'
5
+ t.pattern = "test/**/*_test.rb"
6
+ end
@@ -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 [:a, :address], :arg_name => 'HOSTNAME',
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
- exit_now!('ALIAS is required') if args.empty?
34
- exit_now!('HOSTNAME is required') unless o[:address]
35
- exit_now!('RCON is required') unless o[:rcon]
36
- exit_now!("ALIAS #{args.first}` already used") if $config.find_by_name args.first
37
- s = Rubycon::Server.new(args.first, o[:a], o[:p], o[:r])
38
- $config.add_server s
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 the specified server'
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
- $config.delete_all_servers
53
+ $config.delete_all_servers
51
54
  else
52
55
  exit_now!('ALIAS is required') if args.empty?
53
- exit_now!("Unknown server alias: #{args.first}") unless $config.delete_server args.first
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
- :desc => 'Amount of whitespace between the columns',
62
- :type => Integer
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.') if $config.servers.empty?
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| i.ping.to_s.length}).max
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
- end
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
@@ -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
@@ -1,7 +1,6 @@
1
1
  module Rubycon
2
2
  class Config
3
- attr_reader :path, :servers
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
@@ -0,0 +1,4 @@
1
+ module Rubycon
2
+ class ConfigError < StandardError
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Rubycon
2
+ class ServerError < StandardError
3
+ end
4
+ end
@@ -54,7 +54,7 @@ module Rubycon
54
54
  puts 'Connection refused. Wrong host?'
55
55
  exit
56
56
  rescue SteamCondenser::TimeoutError
57
- puts '---Connection timed out while sending command!'
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
@@ -7,10 +7,11 @@ module Rubycon
7
7
  @address = address
8
8
  @port = port
9
9
  @rcon = rcon
10
- end
11
10
 
12
- def self.from_hash(hash)
13
- Server.new(hash['name'], hash['address'], hash['port'], hash['rcon'])
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
@@ -1,3 +1,3 @@
1
1
  module Rubycon
2
- VERSION = '0.2'
2
+ VERSION = '0.3'
3
3
  end
@@ -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 = File.read 'README.md'
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.add_development_dependency('aruba')
18
- s.add_development_dependency('rake')
19
- s.add_development_dependency('rdoc')
20
- s.add_runtime_dependency('gli','2.5.6')
21
- s.add_runtime_dependency('highline', '1.6.19')
22
- s.add_runtime_dependency('steam-condenser', '1.3.5')
23
- s.add_runtime_dependency('colored', '1.2')
24
- s.add_runtime_dependency('parallel', '0.7.0')
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
@@ -0,0 +1,11 @@
1
+ require_relative File.join(['..','test_helper'])
2
+
3
+ describe Rubycon do
4
+ it 'must be defined' do
5
+ VERSION.wont_be_nil
6
+ end
7
+
8
+ it 'must have the right version' do
9
+ VERSION.must_equal '0.3'
10
+ end
11
+ end
@@ -1,9 +1,10 @@
1
- require 'test/unit'
1
+ require 'coveralls'
2
+ require 'minitest/autorun'
3
+ require 'minitest/reporters'
4
+ require 'minitest/spec'
2
5
 
3
- # Add test libraries you want to use here, e.g. mocha
6
+ MiniTest::Reporters.use! MiniTest::Reporters::SpecReporter.new
4
7
 
5
- class Test::Unit::TestCase
8
+ Coveralls.wear!
6
9
 
7
- # Add global extensions to the test case class here
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.2'
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-06-17 00:00:00.000000000 Z
11
+ date: 2013-08-28 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: aruba
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: '0'
22
- type: :development
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: '0'
26
+ version: '1.2'
30
27
  - !ruby/object:Gem::Dependency
31
- name: rake
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: '0'
38
- type: :development
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: '0'
40
+ version: '2.5'
46
41
  - !ruby/object:Gem::Dependency
47
- name: rdoc
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: '0'
54
- type: :development
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: '0'
54
+ version: '1.6'
62
55
  - !ruby/object:Gem::Dependency
63
- name: gli
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: 2.5.6
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: 2.5.6
68
+ version: '0.7'
78
69
  - !ruby/object:Gem::Dependency
79
- name: highline
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.6.19
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.6.19
82
+ version: '1.3'
94
83
  - !ruby/object:Gem::Dependency
95
- name: steam-condenser
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: 1.3.5
102
- type: :runtime
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: 1.3.5
96
+ version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
- name: colored
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: '1.2'
118
- type: :runtime
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: '1.2'
110
+ version: '0'
126
111
  - !ruby/object:Gem::Dependency
127
- name: parallel
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.7.0
134
- type: :runtime
117
+ version: '0'
118
+ type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - '='
140
- - !ruby/object:Gem::Version
141
- version: 0.7.0
142
- description: ! "Rubycon is a CLI for managing Source dedicated game servers (TF2,
143
- CS:S...). Think of it as a [HSLW](http://www.hlsw.org) clone, but terminal-based.\n\n![Screenshot](http://i.imgur.com/cto9CnT.png)\n\nFeatures:\n\n*
144
- RCON session with auto completion\n* Overview of all your servers\n* Bulk execution
145
- of rcon commands\n* Start game client and join servers from the command line\n\n#
146
- Installation\n\nRubycon was written in Ruby, Version 1.9.3 is minimum to run rubycon.
147
- (`ruby -v`).\nMake sure to have the following libraries installed:\n\n* RHEL based:
148
- \ `yum install readline-devel bzip2-devel`\n* Debian based: `apt-get install libreadline-dev
149
- libbz2-dev`\n\nInstall rubycon with the following command:\n\n`$ gem install rubycon`\n\n#
150
- Usage\n\nFirst of all, add a game server to rubycon:\n\n```\n$ rubycon add my_server
151
- \\\n --address=192.168.0.1 \\\n --rcon=foobar\n```\n\nTime to check out how
152
- your server is doing:\n\n```\n$ rubycon list\nServer Map Players
153
- \ Ping\nmy_server ctf_2fort 4/25 42\n```\n\nHop into
154
- a rcon session:\n\n```\n$ rubycon console my_server\nUse CTRL+D to exit.\n> sta\nstar_memory
155
- \ startdemos startmovie startupmenu stats status\n> status\nhostname:
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.rdoc
190
- - test/default_test.rb
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: '0'
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: 1.8.23
189
+ rubygems_version: 2.0.3
214
190
  signing_key:
215
- specification_version: 3
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
@@ -1,8 +0,0 @@
1
- Feature: My bootstrapped app kinda works
2
- In order to get going on coding my awesome app
3
- I want to have aruba and cucumber setup
4
- So I don't have to do it myself
5
-
6
- Scenario: App just runs
7
- When I get help for "rubycon"
8
- Then the exit status should be 0
@@ -1,6 +0,0 @@
1
- When /^I get help for "([^"]*)"$/ do |app_name|
2
- @app_name = app_name
3
- step %(I run `#{app_name} help`)
4
- end
5
-
6
- # Add more step definitions here
@@ -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
@@ -1,5 +0,0 @@
1
- = rubycon
2
-
3
- Generate this with
4
- rubycon rdoc
5
- After you have described your command line interface
@@ -1,14 +0,0 @@
1
- require 'test_helper'
2
-
3
- class DefaultTest < Test::Unit::TestCase
4
-
5
- def setup
6
- end
7
-
8
- def teardown
9
- end
10
-
11
- def test_the_truth
12
- assert true
13
- end
14
- end