dockergsm 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +7 -0
  2. data/bin/dockergsm +70 -0
  3. data/lib/dockergsm.rb +9 -0
  4. data/lib/games.yml +5 -0
  5. metadata +67 -0
@@ -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
@@ -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
@@ -0,0 +1,9 @@
1
+ module GSM
2
+ def self.create(name, id); end
3
+
4
+ def self.start(id); end
5
+
6
+ def self.stop(id); end
7
+
8
+ def self.delete(id); end
9
+ end
@@ -0,0 +1,5 @@
1
+ example:
2
+ name: 'Example'
3
+ version: '1.0'
4
+ image: 'foo/bar'
5
+ options: '-a -b -c -d'
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: []