dockergsm 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.
- checksums.yaml +7 -0
- data/bin/dockergsm +70 -0
- data/lib/dockergsm.rb +9 -0
- data/lib/games.yml +5 -0
- metadata +67 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1f5d241ae004b6265fb276f4e010734e55bf1d07
|
4
|
+
data.tar.gz: 6c5c8504fe520eb857ed1fa31c5a9253c2ff7dfc
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b3c868831a1ca1f97364c585de89cf451367edb8e4ff532ca2585e49a1c46e6932e409689c547ea29ef02f6d3bf201d7f1095244aeeed8716f331deefd61a502
|
7
|
+
data.tar.gz: e7e430b0152cd4e1893a46522600cfa5d559911d2d6d5d8967715f484c31a118c278375b4a72b2043a17d30728e0abab9ead6dd115f2601be8c1b6ab7df81872
|
data/bin/dockergsm
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'dockergsm'
|
3
|
+
require 'thor'
|
4
|
+
|
5
|
+
# provide yes/no dialog
|
6
|
+
def yn_dialog(message, default)
|
7
|
+
result = :initial
|
8
|
+
until ['y', 'n', 'Y', 'N', 'yes', 'no', 'Yes', 'No', ''].include? result
|
9
|
+
puts "Unable to parse response: #{result}." unless result == :initial
|
10
|
+
print message
|
11
|
+
result = STDIN.gets.chomp
|
12
|
+
end
|
13
|
+
|
14
|
+
yes_options = %w[y Y yes Yes]
|
15
|
+
yes_options.push('') if default # default: true > (Y/n), false > (y/N)
|
16
|
+
yes_options.include?(result) ? true : false
|
17
|
+
end
|
18
|
+
|
19
|
+
# run error handling
|
20
|
+
def basic_err(before, after, command)
|
21
|
+
puts before
|
22
|
+
begin
|
23
|
+
command.call
|
24
|
+
rescue RuntimeError => e
|
25
|
+
puts "ERROR: #{e.message}."
|
26
|
+
end
|
27
|
+
puts after
|
28
|
+
end
|
29
|
+
|
30
|
+
# cli class
|
31
|
+
class Engine < Thor
|
32
|
+
package_name 'DockerGSM'
|
33
|
+
|
34
|
+
# create a server (game: GAME, id: SERVER_ID)
|
35
|
+
desc 'create GAME SERVER_ID', 'create and start a new game server'
|
36
|
+
def create(game, id)
|
37
|
+
GSM.create(game, id)
|
38
|
+
end
|
39
|
+
|
40
|
+
# start a server (id: ID)
|
41
|
+
desc 'start ID', 'start an existing server'
|
42
|
+
def start(id)
|
43
|
+
GSM.start(id)
|
44
|
+
end
|
45
|
+
|
46
|
+
# stop a server (id: ID)
|
47
|
+
desc 'stop ID', 'stop an existing server'
|
48
|
+
def stop(id)
|
49
|
+
GSM.stop(id)
|
50
|
+
end
|
51
|
+
|
52
|
+
# delete a server (id: ID), requires confirmation
|
53
|
+
desc 'delete ID', 'delete an existing game server'
|
54
|
+
method_option :force, type: :boolean, default: false, aliases: '-f'
|
55
|
+
def delete(id)
|
56
|
+
unless options.force?
|
57
|
+
result = yn_dialog("Are you sure you want to delete server #{id}? (y/N) ",
|
58
|
+
false)
|
59
|
+
end
|
60
|
+
|
61
|
+
if result || options.force?
|
62
|
+
basic_err("Deleting server #{id}...", 'Successfully deleted server ' \
|
63
|
+
"#{id}.", proc { GSM.delete(id) })
|
64
|
+
else
|
65
|
+
puts 'Aborted process.'
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
Engine.start
|
data/lib/dockergsm.rb
ADDED
data/lib/games.yml
ADDED
metadata
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dockergsm
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Josh Quail
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-12-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.20.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.20.0
|
27
|
+
description: |-
|
28
|
+
DockerGSM is a game server tool written in Ruby for managing
|
29
|
+
a large number of servers for a large number of games from one location. Run
|
30
|
+
`dockergsm help` to get a list of commands.
|
31
|
+
email: josh@madbean.com
|
32
|
+
executables:
|
33
|
+
- dockergsm
|
34
|
+
extensions: []
|
35
|
+
extra_rdoc_files: []
|
36
|
+
files:
|
37
|
+
- bin/dockergsm
|
38
|
+
- lib/dockergsm.rb
|
39
|
+
- lib/games.yml
|
40
|
+
homepage: http://rubygems.org/gems/dockergsm
|
41
|
+
licenses:
|
42
|
+
- MIT
|
43
|
+
metadata:
|
44
|
+
source_code_uri: https://github.com/realtable/dockergsm
|
45
|
+
bug_tracker_uri: https://github.com/realtable/dockergsm/issues
|
46
|
+
post_install_message:
|
47
|
+
rdoc_options: []
|
48
|
+
require_paths:
|
49
|
+
- lib
|
50
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
requirements:
|
61
|
+
- Docker, v17.03 or greater
|
62
|
+
rubyforge_project:
|
63
|
+
rubygems_version: 2.5.2.3
|
64
|
+
signing_key:
|
65
|
+
specification_version: 4
|
66
|
+
summary: A CLI tool for managing localhost game servers with Docker
|
67
|
+
test_files: []
|