gamerom 0.4.1 → 0.6.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb5b2436db69a148330e79002fe0f1b854de9f2c906e02d8a8a5e53aa14cea84
4
- data.tar.gz: b346cbf782f88c1a9a1f56930724e51aa5ff636f49addb7c72a96467133a2998
3
+ metadata.gz: 33c71545b14feb811985d98d9e1e4677b7101f7e86676865c50770eb53b99169
4
+ data.tar.gz: 3388785345996bdb7711c90150ad03cc8bc3cf08afaad281144690ce8da85144
5
5
  SHA512:
6
- metadata.gz: 456f9d5115633ce378184d997d951cf34abccf02ed726a985ddcec8113075e4336504cceea0f4c92b73b5495db8bd9bfbf3d4e84d6ce15ff176a528cfdeb4477
7
- data.tar.gz: 852d4cf9d0c17b01df6352cb96ed149136492e316d5f7bc16b3ade069a681a7f3842aec9b20da5eec84a3eae335bd72f4e9bae03554d4ec45219c0ec9b11f9ea
6
+ metadata.gz: '0694ea12b96bac2fb769f0176ca0b459804eb1b955c51c44fb57dc60046d63136836a0b206c696fb6cbee9096c211d475cf038a9dc14c4a2ff43b232af3cd87d'
7
+ data.tar.gz: ff44e316119690d3732f629ff162af18feef6ccb512881063625b899782adf4d95100c9a49829e619f09c82ce4fb944bd793490d0358c0cc3bbbb36158d06603
@@ -1,18 +1,16 @@
1
1
  name: Ruby
2
2
 
3
- on: [push,pull_request]
3
+ on: [push, pull_request]
4
4
 
5
5
  jobs:
6
6
  build:
7
7
  runs-on: ubuntu-latest
8
8
  steps:
9
- - uses: actions/checkout@v2
9
+ - uses: actions/checkout@v7
10
10
  - name: Set up Ruby
11
11
  uses: ruby/setup-ruby@v1
12
12
  with:
13
- ruby-version: 3.0.1
13
+ ruby-version: .ruby-version
14
+ bundler-cache: true
14
15
  - name: Run the default task
15
- run: |
16
- gem install bundler -v 2.2.3
17
- bundle install
18
- bundle exec rake
16
+ run: bundle exec rake
data/.rubocop.yml CHANGED
@@ -41,3 +41,12 @@ Style/SoleNestedConditional:
41
41
  Enabled: true
42
42
  Exclude:
43
43
  - 'lib/mechanizeprogress.rb'
44
+
45
+ # mechanizeprogress.rb monkeypatches two existing classes on purpose
46
+ Style/OneClassPerFile:
47
+ Exclude:
48
+ - 'lib/mechanizeprogress.rb'
49
+
50
+ plugins:
51
+ - rubocop-rake
52
+ - rubocop-rspec
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-3.0.1
1
+ ruby-3.4.12
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.4.12
data/CHANGELOG.md CHANGED
@@ -6,6 +6,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.6.0] - 2026-11-01
10
+ - feat: add edgeemu repo (https://edgeemu.net), 48 platforms
11
+ - feat: recover - do not claim files that belong to a game with a longer name (e.g. "Kung-Fu" vs "Kung-Fu Master")
12
+ - feat: use ruby 3.4.12 and update all dependencies
13
+ - fix: install_all - Ctrl-C stops the loop again
14
+ - feat: vimm repo - the site now blocks automated downloads, so install shows the game page URL and the target directory for a manual download; database, search and recover keep working
15
+
16
+ ## [0.5.0] - 2025-03-25
17
+ - feat: add ps3 platform for coolrom repo
18
+ - feat: add new platforms for vimm repo (Sega 32X, Atari 2600, Atari 5200, Atari 7800, Game Gear, Lynx, Sega CD, Master System, TurboGrafx-16, TurboGrafx-CD, Virtual Boy, XBox, XBox 360)
19
+ - feat: remove deprecated romnation repo
20
+ - feat: use ruby 3.4.2 and update all dependencies
21
+ - feat: format progress bars (colored pacman style)
22
+ - feat: handle SIGINT and SIGTERM
23
+ - fix: vimm repo game install
24
+ - fix: coolrom repo broken progress
25
+ - fix: vimm repo unable to get local issuer
26
+ - fix: vimm repo update datase (404 not found)
27
+
9
28
  ## [0.4.1] - 2021-05-18
10
29
  - Enables specifying game identifier without using quotes
11
30
 
@@ -34,7 +53,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
34
53
  ## [0.1.0] - 2021-05-07
35
54
  - Initial release
36
55
 
37
- [Unreleased]: https://github.com/lucasmundim/gamerom/compare/v0.4.1...HEAD
56
+ [Unreleased]: https://github.com/lucasmundim/gamerom/compare/v0.6.0...HEAD
57
+ [0.6.0]: https://github.com/lucasmundim/gamerom/compare/v0.5.0...v0.6.0
58
+ [0.5.0]: https://github.com/lucasmundim/gamerom/compare/v0.4.1...v0.5.0
38
59
  [0.4.1]: https://github.com/lucasmundim/gamerom/compare/v0.4.0...v0.4.1
39
60
  [0.4.0]: https://github.com/lucasmundim/gamerom/compare/v0.3.0...v0.4.0
40
61
  [0.3.0]: https://github.com/lucasmundim/gamerom/compare/v0.2.2...v0.3.0
data/Dockerfile CHANGED
@@ -1,16 +1,26 @@
1
- FROM ruby:3.0.1-alpine as build
1
+ FROM ruby:3.4.12-alpine
2
2
 
3
3
  RUN apk add --no-cache --virtual .build-deps \
4
4
  build-base \
5
+ ca-certificates \
6
+ curl \
5
7
  git
6
8
 
7
9
  # throw errors if Gemfile has been modified since Gemfile.lock
8
10
  RUN bundle config --global frozen 1
9
11
 
12
+ # Add missing certificates
13
+ RUN curl -s https://letsencrypt.org/certs/2024/e5.pem -o /etc/ssl/certs/e5.pem && \
14
+ curl -s https://letsencrypt.org/certs/2024/e5.pem -o /etc/ssl/certs/e5.pem && \
15
+ curl -s https://letsencrypt.org/certs/2024/e6.pem -o /etc/ssl/certs/e6.pem && \
16
+ curl -s https://letsencrypt.org/certs/2024/r10.pem -o /etc/ssl/certs/r10.pem && \
17
+ curl -s https://letsencrypt.org/certs/2024/r11.pem -o /etc/ssl/certs/r11.pem && \
18
+ update-ca-certificates
19
+
10
20
  RUN mkdir -p /bundle && chmod 777 /bundle
11
21
 
12
22
  ENV GEM_HOME="/bundle"
13
- ENV PATH $GEM_HOME/bin:$GEM_HOME/gems/bin:$PATH
23
+ ENV PATH=$GEM_HOME/bin:$GEM_HOME/gems/bin:$PATH
14
24
 
15
25
  RUN mkdir -p /app
16
26
  WORKDIR /app
@@ -18,4 +28,4 @@ WORKDIR /app
18
28
  COPY . .
19
29
  RUN bundle install
20
30
 
21
- ENTRYPOINT ["/app/entrypoint.sh"]
31
+ ENTRYPOINT ["/app/entrypoint.sh"]
data/Gemfile CHANGED
@@ -5,8 +5,10 @@ source 'https://rubygems.org'
5
5
  # Specify your gem's dependencies in gamerom.gemspec
6
6
  gemspec
7
7
 
8
- gem 'rake', '~> 13.0'
8
+ gem 'rake', '~> 13.4.2'
9
9
 
10
- gem 'rspec', '~> 3.0'
10
+ gem 'rspec', '~> 3.13.2'
11
11
 
12
- gem 'rubocop', '~> 0.80'
12
+ gem 'rubocop', '~> 1.92.2'
13
+ gem 'rubocop-rake', '~> 0.7.1'
14
+ gem 'rubocop-rspec', '~> 3.10.2'
data/Gemfile.lock CHANGED
@@ -1,34 +1,40 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gamerom (0.4.1)
5
- mechanize (~> 2.8.0)
4
+ gamerom (0.6.0)
5
+ mechanize (~> 2.14.2)
6
6
  mechanize-progressbar (~> 0.2.0)
7
- nokogiri (~> 1.11.3)
8
- progressbar (~> 0.9.0)
7
+ nokogiri (~> 1.19.4)
8
+ progressbar (~> 1.13.0)
9
9
  rest-client (~> 2.1.0)
10
- thor (~> 1.1.0)
10
+ thor (~> 1.5.0)
11
11
 
12
12
  GEM
13
13
  remote: https://rubygems.org/
14
14
  specs:
15
- addressable (2.7.0)
16
- public_suffix (>= 2.0.2, < 5.0)
17
- ast (2.4.2)
18
- connection_pool (2.2.5)
19
- diff-lcs (1.4.4)
20
- domain_name (0.5.20190701)
21
- unf (>= 0.0.5, < 1.0.0)
15
+ addressable (2.9.2)
16
+ public_suffix (>= 2.0.2, < 8.0)
17
+ ast (2.4.3)
18
+ base64 (0.3.0)
19
+ connection_pool (3.0.2)
20
+ diff-lcs (1.6.2)
21
+ domain_name (0.7.20261007)
22
22
  http-accept (1.7.0)
23
- http-cookie (1.0.3)
23
+ http-cookie (1.1.6)
24
24
  domain_name (~> 0.5)
25
- mechanize (2.8.1)
26
- addressable (~> 2.7)
25
+ json (3.1.0)
26
+ language_server-protocol (3.17.0.6)
27
+ lint_roller (1.1.0)
28
+ logger (1.7.0)
29
+ mechanize (2.14.2)
30
+ addressable (~> 2.8)
31
+ base64
27
32
  domain_name (~> 0.5, >= 0.5.20190701)
28
33
  http-cookie (~> 1.0, >= 1.0.3)
29
- mime-types (~> 3.0)
34
+ mime-types (~> 3.3)
30
35
  net-http-digest_auth (~> 1.4, >= 1.4.1)
31
36
  net-http-persistent (>= 2.5.2, < 5.0.dev)
37
+ nkf
32
38
  nokogiri (~> 1.11, >= 1.11.2)
33
39
  rubyntlm (~> 0.6, >= 0.6.3)
34
40
  webrick (~> 1.7)
@@ -36,75 +42,99 @@ GEM
36
42
  mechanize-progressbar (0.2.0)
37
43
  mechanize (>= 1.0.0)
38
44
  progressbar (>= 0.9.0)
39
- mime-types (3.3.1)
40
- mime-types-data (~> 3.2015)
41
- mime-types-data (3.2021.0225)
45
+ mime-types (3.7.0)
46
+ logger
47
+ mime-types-data (~> 3.2025, >= 3.2025.0507)
48
+ mime-types-data (3.2026.1027)
42
49
  net-http-digest_auth (1.4.1)
43
- net-http-persistent (4.0.1)
44
- connection_pool (~> 2.2)
50
+ net-http-persistent (4.0.8)
51
+ connection_pool (>= 2.2.4, < 4)
45
52
  netrc (0.11.0)
46
- nokogiri (1.11.4-x86_64-darwin)
53
+ nkf (0.3.0)
54
+ nokogiri (1.19.4-aarch64-linux-musl)
47
55
  racc (~> 1.4)
48
- nokogiri (1.11.4-x86_64-linux)
56
+ nokogiri (1.19.4-arm64-darwin)
49
57
  racc (~> 1.4)
50
- parallel (1.20.1)
51
- parser (3.0.1.0)
58
+ nokogiri (1.19.4-x86_64-darwin)
59
+ racc (~> 1.4)
60
+ nokogiri (1.19.4-x86_64-linux-gnu)
61
+ racc (~> 1.4)
62
+ nokogiri (1.19.4-x86_64-linux-musl)
63
+ racc (~> 1.4)
64
+ parallel (2.3.0)
65
+ parser (3.3.13.0)
52
66
  ast (~> 2.4.1)
53
- progressbar (0.9.2)
54
- public_suffix (4.0.6)
55
- racc (1.5.2)
56
- rainbow (3.0.0)
57
- rake (13.0.3)
58
- regexp_parser (2.1.1)
67
+ racc
68
+ prism (1.9.0)
69
+ progressbar (1.13.0)
70
+ public_suffix (7.0.5)
71
+ racc (1.8.1)
72
+ rainbow (3.1.1)
73
+ rake (13.4.2)
74
+ regexp_parser (2.13.1)
59
75
  rest-client (2.1.0)
60
76
  http-accept (>= 1.7.0, < 2.0)
61
77
  http-cookie (>= 1.0.2, < 2.0)
62
78
  mime-types (>= 1.16, < 4.0)
63
79
  netrc (~> 0.8)
64
- rexml (3.2.5)
65
- rspec (3.10.0)
66
- rspec-core (~> 3.10.0)
67
- rspec-expectations (~> 3.10.0)
68
- rspec-mocks (~> 3.10.0)
69
- rspec-core (3.10.1)
70
- rspec-support (~> 3.10.0)
71
- rspec-expectations (3.10.1)
80
+ rspec (3.13.2)
81
+ rspec-core (~> 3.13.0)
82
+ rspec-expectations (~> 3.13.0)
83
+ rspec-mocks (~> 3.13.0)
84
+ rspec-core (3.13.6)
85
+ rspec-support (~> 3.13.0)
86
+ rspec-expectations (3.13.5)
72
87
  diff-lcs (>= 1.2.0, < 2.0)
73
- rspec-support (~> 3.10.0)
74
- rspec-mocks (3.10.2)
88
+ rspec-support (~> 3.13.0)
89
+ rspec-mocks (3.13.8)
75
90
  diff-lcs (>= 1.2.0, < 2.0)
76
- rspec-support (~> 3.10.0)
77
- rspec-support (3.10.2)
78
- rubocop (0.93.1)
79
- parallel (~> 1.10)
80
- parser (>= 2.7.1.5)
91
+ rspec-support (~> 3.13.0)
92
+ rspec-support (3.13.7)
93
+ rubocop (1.92.2)
94
+ json (>= 2.3)
95
+ language_server-protocol (~> 3.17.0.2)
96
+ lint_roller (~> 1.1.0)
97
+ parallel (>= 1.10)
98
+ parser (>= 3.3.0.2)
81
99
  rainbow (>= 2.2.2, < 4.0)
82
- regexp_parser (>= 1.8)
83
- rexml
84
- rubocop-ast (>= 0.6.0)
100
+ regexp_parser (>= 2.11.3, < 3.0)
101
+ rubocop-ast (>= 1.49.0, < 2.0)
85
102
  ruby-progressbar (~> 1.7)
86
- unicode-display_width (>= 1.4.0, < 2.0)
87
- rubocop-ast (1.4.1)
88
- parser (>= 2.7.1.5)
89
- ruby-progressbar (1.11.0)
90
- rubyntlm (0.6.3)
91
- thor (1.1.0)
92
- unf (0.1.4)
93
- unf_ext
94
- unf_ext (0.0.7.7)
95
- unicode-display_width (1.7.0)
96
- webrick (1.7.0)
103
+ unicode-display_width (>= 2.4.0, < 4.0)
104
+ rubocop-ast (1.50.0)
105
+ parser (>= 3.3.7.2)
106
+ prism (~> 1.7)
107
+ rubocop-rake (0.7.1)
108
+ lint_roller (~> 1.1)
109
+ rubocop (>= 1.72.1)
110
+ rubocop-rspec (3.10.2)
111
+ lint_roller (~> 1.1)
112
+ regexp_parser (>= 2.0)
113
+ rubocop (~> 1.86, >= 1.86.2)
114
+ ruby-progressbar (1.13.0)
115
+ rubyntlm (0.6.8)
116
+ base64
117
+ thor (1.5.0)
118
+ unicode-display_width (3.3.0)
119
+ unicode-emoji (~> 4.3)
120
+ unicode-emoji (4.3.0)
121
+ webrick (1.9.2)
97
122
  webrobots (0.1.2)
98
123
 
99
124
  PLATFORMS
125
+ aarch64-linux-musl
126
+ arm64-darwin-24
100
127
  x86_64-darwin-20
128
+ x86_64-linux
101
129
  x86_64-linux-musl
102
130
 
103
131
  DEPENDENCIES
104
132
  gamerom!
105
- rake (~> 13.0)
106
- rspec (~> 3.0)
107
- rubocop (~> 0.80)
133
+ rake (~> 13.4.2)
134
+ rspec (~> 3.13.2)
135
+ rubocop (~> 1.92.2)
136
+ rubocop-rake (~> 0.7.1)
137
+ rubocop-rspec (~> 3.10.2)
108
138
 
109
139
  BUNDLED WITH
110
- 2.2.15
140
+ 2.6.9
data/Makefile CHANGED
@@ -1,6 +1,6 @@
1
- VERSION:=$(shell cat lib/gamerom/version.rb |grep VERSION|cut -d\' -f2)
2
- IMAGE=lucasmundim/gamerom:${VERSION}
3
- DOCKER_OPTS=--rm -it -v ${HOME}/.gamerom:/root/.gamerom ${IMAGE}
1
+ VERSION?=$(shell cat lib/gamerom/version.rb |grep VERSION|cut -d\' -f2)
2
+ IMAGE?=lucasmundim/gamerom:${VERSION}
3
+ DOCKER_OPTS=-e UID=$(shell id -u) -e GROUP_ID=$(shell id -g) --rm -it -v ${HOME}/.gamerom:/root/.gamerom --platform=linux/amd64 ${IMAGE}
4
4
  LOCAL_VOLUME_OPTS=-v ${CURDIR}:/app
5
5
  DOCKER_DEVELOPMENT_OPTS=${LOCAL_VOLUME_OPTS} --entrypoint '' ${DOCKER_OPTS}
6
6
 
@@ -8,7 +8,7 @@ version:
8
8
  @echo ${VERSION}
9
9
 
10
10
  build:
11
- @docker build -t ${IMAGE} .
11
+ @docker build --platform=linux/amd64 -t ${IMAGE} .
12
12
 
13
13
  console:
14
14
  @docker run ${DOCKER_DEVELOPMENT_OPTS} ./bin/console
data/README.md CHANGED
@@ -4,9 +4,9 @@ A command-line installer for game ROMs from many repositories.
4
4
 
5
5
  It currently supports the following repositories:
6
6
 
7
- - https://vimm.net
8
7
  - https://coolrom.com.au
9
- - https://www.romnation.net
8
+ - https://edgeemu.net
9
+ - https://vimm.net (search and database only: downloads must be done manually, see `install` below)
10
10
 
11
11
  ## Installation
12
12
 
@@ -15,7 +15,7 @@ It currently supports the following repositories:
15
15
  Add this to your .bashrc, .bash_aliases, etc:
16
16
 
17
17
  ```
18
- alias gamerom="docker run -e UID=$(id -u) -e GROUP_ID=$(id -g) --rm -it -v ~/.gamerom:/home/runuser/.gamerom docker.io/lucasmundim/gamerom:0.4.1"
18
+ alias gamerom="docker run -e UID=$(id -u) -e GROUP_ID=$(id -g) --rm -it -v ~/.gamerom:/home/runuser/.gamerom --platform=linux/amd64 docker.io/lucasmundim/gamerom:0.6.0"
19
19
  ```
20
20
 
21
21
  Use it as:
@@ -86,7 +86,7 @@ List available repo
86
86
  $ gamerom repo
87
87
  listing available repo...
88
88
  coolrom
89
- romnation
89
+ edgeemu
90
90
  vimm
91
91
  ```
92
92
 
@@ -125,43 +125,58 @@ listing available platforms for coolrom repo...
125
125
  ```
126
126
 
127
127
  ```
128
- $ gamerom platforms -r romnation
129
- listing available platforms for romnation repo...
128
+ $ gamerom platform -r edgeemu
129
+ listing available platforms for edgeemu repo...
130
130
  ---
131
131
  :platforms:
132
- amstrad: Amstrad
133
- atari2600: Atari 2600
134
- atari5200: Atari 5200
135
- atari7800: Atari 7800
136
- atarijaguar: Atari Jaguar
137
- atarilynx: Atari Lynx
138
- colecovision: ColecoVision
139
- commodore64: Commodore 64
140
- gamegear: Game Gear
141
- gb: Game Boy
142
- gbc: Game Boy Color
143
- gcdvectrex: Vectrex
144
- genesis: Genesis
145
- intellivision: Intellivision
146
- mame: MAME
147
- msx1: MSX
148
- msx2: MSX2
149
- mtx: MTX
150
- n64: N64
151
- neogeocd: Neo Geo CD
152
- neogeopocket: Neo Geo Pocket
153
- nes: NES
154
- oric: Oric
155
- pce: PC Engine
156
- radioshackcolorcomputer: TRS-80
157
- samcoupe: SAM Coupé
158
- segacd: Sega CD
159
- segamastersystem: Master System
160
- snes: SNES
161
- thompsonmo5: Thomson MO5
162
- virtualboy: Virtual Boy
163
- watara: Watara Supervision
164
- wonderswan: WonderSwan
132
+ atari-2600: Atari 2600
133
+ atari-5200: Atari 5200
134
+ atari-7800: Atari 7800
135
+ atari-jaguar: Atari Jaguar
136
+ atari-jaguar-cd: Atari Jaguar CD
137
+ atari-lynx: Atari Lynx
138
+ atari-st: Atari ST
139
+ bandai-wonderswan: Bandai WonderSwan
140
+ colecovision: Coleco ColecoVision
141
+ commodore-64: Commodore 64
142
+ commodore-amiga: Commodore Amiga
143
+ commodore-amiga-cd: Commodore Amiga CD
144
+ commodore-amiga-cd32: Commodore Amiga CD32
145
+ commodore-plus-4: Commodore Plus-4
146
+ commodore-vic-20: Commodore VIC-20
147
+ fairchild-channel-f: Fairchild Channel F
148
+ gce-vectrex: GCE Vectrex
149
+ microsoft-msx: Microsoft MSX / MSX2
150
+ nec-pc-engine-cd-turbografx-cd: NEC PC Engine CD / TurboGrafx CD
151
+ nec-pc-engine-supergrafx: NEC PC Engine SuperGrafx
152
+ nec-pc-engine-turbografx-16: NEC PC Engine / TurboGrafx 16
153
+ nintendo-64: Nintendo 64
154
+ nintendo-ds: Nintendo DS
155
+ nintendo-fds: Nintendo Famicom Disk System (FDS)
156
+ nintendo-gameboy: Nintendo Game Boy
157
+ nintendo-gameboy-advance: Nintendo Game Boy Advance
158
+ nintendo-gameboy-color: Nintendo Game Boy Color
159
+ nintendo-gamecube: Nintendo Gamecube
160
+ nintendo-nes: Nintendo Entertainment System (NES)
161
+ nintendo-satellaview: Nintendo Satellaview
162
+ nintendo-snes: Super NES (SNES)
163
+ nintendo-virtualboy: Nintendo Virtual Boy
164
+ panasonic-3do: Panasonic 3DO
165
+ philips-cdi: Philips CDi
166
+ rca-studioii: RCA Studio II
167
+ sega-32x: Sega 32X
168
+ sega-cd: Sega Mega-CD / Sega CD
169
+ sega-dreamcast: Sega Dreamcast
170
+ sega-gamegear: Sega Game Gear
171
+ sega-genesis: Sega Mega Drive / Genesis
172
+ sega-pico: Sega PICO
173
+ sega-saturn: Sega Saturn
174
+ sega-sg1000: Sega SG-1000
175
+ sega-sms: Sega Master System / Mark III
176
+ sinclair-zx-spectrum-3: Sinclair ZX Spectrum +3
177
+ snk-neo-geo-cd: SNK Neo Geo CD
178
+ snk-ngpc: SNK Neo Geo Pocket Color
179
+ watara-supervision: Watara Supervision
165
180
  ```
166
181
 
167
182
  ```
@@ -214,12 +229,19 @@ ID NAME REGION INSTALLED TAGS
214
229
  Search games by KEYWORD
215
230
 
216
231
  ```
217
- $ gamerom search -r romnation -p segamastersystem "Alex Kidd in Shinobi World"
218
- searching available games for segamastersystem platform on romnation repo...
219
- ID NAME REGION INSTALLED TAGS
220
- 39126 Alex Kidd in Shinobi World (UE) [!] USA - good
221
- 39127 Alex Kidd in Shinobi World (UE) [b1] USA - bad
222
- 39128 Alex Kidd in Shinobi World (UE) [b2] USA - bad
232
+ $ gamerom search -r vimm -p segamastersystem "Alex Kidd in Shinobi World"
233
+ $ bundle exec gamerom search --repo vimm --platform SMS "Alex Kidd"
234
+ searching available games for SMS platform on vimm repo...
235
+ ID NAME REGION INSTALLED TAGS
236
+ 83680 Alex Kidd in Miracle World USA - -
237
+ 83681 Alex Kidd in Miracle World USA - -
238
+ 83682 Alex Kidd in Miracle World (Sega Ages) USA - -
239
+ 83682 Alex Kidd in Miracle World (Sega Ages) USA - -
240
+ 83684 Alex Kidd in Shinobi World USA - -
241
+ 83671 Alex Kidd: High-Tech World USA - -
242
+ 83673 Alex Kidd: The Lost Stars USA - -
243
+ 83630 [BIOS] Alex Kidd in Miracle World USA - -
244
+ 83631 [BIOS] Alex Kidd in Miracle World (Sega Ages) USA - -
223
245
  ```
224
246
 
225
247
  ### regions
@@ -246,13 +268,24 @@ USA
246
268
 
247
269
  Install game GAME_IDENTIFIER (id/name)
248
270
 
271
+ ```
272
+ $ gamerom install -r edgeemu -p rca-studioii 'Pinball (Europe)'
273
+ installing game 2675927342 - Pinball (Europe) - Europe on rca-studioii platform on edgeemu repo...
274
+ 100% |ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo| 1.1KB 12.3KB/s Time: 00:00:00
275
+ Downloaded: Pinball (Europe).zip
276
+ Game installed
277
+ ```
278
+
279
+ The vimm repo does not allow automated downloads, so `install` tells you where to
280
+ download the game and where to save it. Run `recover` afterwards to register it:
281
+
249
282
  ```
250
283
  $ gamerom install -r vimm -p NES 'Mega Man'
251
284
  installing game 545 - Mega Man - USA on NES platform on vimm repo...
252
- downloading single file rom
253
- http://download4.vimm.net/download/?mediaId=530
254
- 100% |ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo| 74.8KB 46.3KB/s Time: 00:00:01
255
- Game installed
285
+ vimm.net does not allow automated downloads.
286
+ Download the game from https://vimm.net/vault/545 in your browser and save it to:
287
+ /home/user/.gamerom/games/vimm/NES/USA/
288
+ Then run `gamerom recover -r vimm -p NES` to register it.
256
289
  ```
257
290
 
258
291
  ### install_all
@@ -585,7 +618,7 @@ Print program version
585
618
 
586
619
  ```
587
620
  $ gamerom version
588
- 0.4.1
621
+ 0.6.0
589
622
  ```
590
623
 
591
624
  ## Development
data/entrypoint.sh CHANGED
@@ -2,5 +2,6 @@
2
2
  delgroup dialout
3
3
  addgroup -g "$GROUP_ID" rungroup
4
4
  adduser -u $UID -D -s /bin/sh -G rungroup runuser
5
+ git config --system --add safe.directory '/app'
5
6
  command="cd /app && GEM_HOME="/bundle" PATH=$GEM_HOME/bin:$GEM_HOME/gems/bin:$PATH bundle exec ./exe/gamerom ${@}"
6
7
  su - runuser -c "$command"
data/exe/gamerom CHANGED
@@ -3,4 +3,20 @@
3
3
 
4
4
  require 'gamerom'
5
5
 
6
+ def shut_down
7
+ puts "\nShutting down gracefully..."
8
+ end
9
+
10
+ # Trap ^C
11
+ Signal.trap('INT') do
12
+ shut_down
13
+ exit
14
+ end
15
+
16
+ # Trap `Kill `
17
+ Signal.trap('TERM') do
18
+ shut_down
19
+ exit
20
+ end
21
+
6
22
  Gamerom::Cli.start(ARGV)
data/gamerom.gemspec CHANGED
@@ -12,13 +12,14 @@ Gem::Specification.new do |spec|
12
12
  spec.description = 'A command-line installer for game ROMs from many repositories.'
13
13
  spec.homepage = 'https://github.com/lucasmundim/gamerom'
14
14
  spec.license = 'MIT'
15
- spec.required_ruby_version = Gem::Requirement.new('>= 3.0.1')
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 3.4.2')
16
16
 
17
17
  spec.metadata['allowed_push_host'] = 'https://rubygems.org'
18
18
 
19
19
  spec.metadata['homepage_uri'] = spec.homepage
20
20
  spec.metadata['source_code_uri'] = spec.homepage
21
21
  spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/master/CHANGELOG.md"
22
+ spec.metadata['rubygems_mfa_required'] = 'true'
22
23
 
23
24
  # Specify which files should be added to the gem when it is released.
24
25
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -29,12 +30,12 @@ Gem::Specification.new do |spec|
29
30
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
31
  spec.require_paths = ['lib']
31
32
 
32
- spec.add_runtime_dependency 'mechanize', '~> 2.8.0'
33
- spec.add_runtime_dependency 'mechanize-progressbar', '~> 0.2.0'
34
- spec.add_runtime_dependency 'nokogiri', '~> 1.11.3'
35
- spec.add_runtime_dependency 'progressbar', '~> 0.9.0'
36
- spec.add_runtime_dependency 'rest-client', '~> 2.1.0'
37
- spec.add_runtime_dependency 'thor', '~> 1.1.0'
33
+ spec.add_dependency 'mechanize', '~> 2.14.2'
34
+ spec.add_dependency 'mechanize-progressbar', '~> 0.2.0'
35
+ spec.add_dependency 'nokogiri', '~> 1.19.4'
36
+ spec.add_dependency 'progressbar', '~> 1.13.0'
37
+ spec.add_dependency 'rest-client', '~> 2.1.0'
38
+ spec.add_dependency 'thor', '~> 1.5.0'
38
39
 
39
40
  # For more information and examples about making a new gem, checkout our
40
41
  # guide at: https://bundler.io/guides/creating_gem.html