worlddb 2.3.0 → 2.4.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 +4 -4
- data/Manifest.txt +11 -10
- data/README.md +14 -16
- data/Rakefile +6 -5
- data/assets/webservice-worlddb-32x32.png +0 -0
- data/bin/worlddb +0 -0
- data/lib/worlddb.rb +60 -1
- data/lib/worlddb/cli/main.rb +60 -18
- data/lib/worlddb/cli/version.rb +3 -3
- metadata +24 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5409171705fa17c821d82dacaaedd35c511cb655
|
4
|
+
data.tar.gz: a821bfda1ff817abb8c528a5c94c2394a610d0e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ba8eff38e8715905a39ca1ca321b3d6eae33bb5a497d264ed744c277b533075493d794de0cddd51a703ff68fdc4ce752591453d83ad9a5174dfd6b9494f3000
|
7
|
+
data.tar.gz: 2871b28c04af9277cea4fec82ca1a8fb3261b49772f4cb372d0681a63d14deb27616f743466c9afc94719ad15d6167fd6a61a9702d6601febf87b7b78fca0dd9
|
data/Manifest.txt
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
-
HISTORY.md
|
2
|
-
Manifest.txt
|
3
|
-
README.md
|
4
|
-
Rakefile
|
5
|
-
|
6
|
-
|
7
|
-
lib/worlddb
|
8
|
-
lib/worlddb/cli/
|
9
|
-
lib/worlddb/cli/
|
10
|
-
lib/worlddb/
|
1
|
+
HISTORY.md
|
2
|
+
Manifest.txt
|
3
|
+
README.md
|
4
|
+
Rakefile
|
5
|
+
assets/webservice-worlddb-32x32.png
|
6
|
+
bin/worlddb
|
7
|
+
lib/worlddb.rb
|
8
|
+
lib/worlddb/cli/main.rb
|
9
|
+
lib/worlddb/cli/opts.rb
|
10
|
+
lib/worlddb/cli/version.rb
|
11
|
+
lib/worlddb/console.rb
|
data/README.md
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# worlddb
|
2
2
|
|
3
|
-
world.db Command Line Tool
|
3
|
+
world.db Command Line Tool
|
4
4
|
|
5
|
-
* home :: [github.com/worlddb/world.db
|
6
|
-
* bugs :: [github.com/worlddb/world.db
|
5
|
+
* home :: [github.com/worlddb/world.db](https://github.com/worlddb/world.db)
|
6
|
+
* bugs :: [github.com/worlddb/world.db/issues](https://github.com/worlddb/world.db/issues)
|
7
7
|
* gem :: [rubygems.org/gems/worlddb](https://rubygems.org/gems/worlddb)
|
8
8
|
* rdoc :: [rubydoc.info/gems/worlddb](http://rubydoc.info/gems/worlddb)
|
9
9
|
* forum :: [groups.google.com/group/openmundi](https://groups.google.com/group/openmundi)
|
@@ -12,9 +12,9 @@ world.db Command Line Tool in Ruby
|
|
12
12
|
## Usage Command Line
|
13
13
|
|
14
14
|
The worlddb gem lets you load plain text fixtures into your database
|
15
|
-
(and also includes schema n models for easy reuse).
|
15
|
+
(and also includes schema n models for easy reuse).
|
16
16
|
|
17
|
-
|
17
|
+
```
|
18
18
|
SYNOPSIS
|
19
19
|
worlddb [global options] command [command options] [arguments...]
|
20
20
|
|
@@ -37,12 +37,12 @@ COMMANDS
|
|
37
37
|
stats - Show stats
|
38
38
|
test - (Debug) Test command suite
|
39
39
|
help - Shows a list of commands or help for one command
|
40
|
-
|
40
|
+
```
|
41
41
|
|
42
42
|
|
43
43
|
### `setup` Command
|
44
44
|
|
45
|
-
|
45
|
+
```
|
46
46
|
NAME
|
47
47
|
setup - Create DB schema 'n' load all world data
|
48
48
|
|
@@ -55,12 +55,12 @@ COMMAND OPTIONS
|
|
55
55
|
EXAMPLES
|
56
56
|
worlddb setup --include ./world.db
|
57
57
|
worlddb setup us --include ./world.db
|
58
|
-
|
58
|
+
```
|
59
59
|
|
60
60
|
|
61
61
|
### `update` Command
|
62
62
|
|
63
|
-
|
63
|
+
```
|
64
64
|
NAME
|
65
65
|
update - Update all world data
|
66
66
|
|
@@ -74,12 +74,12 @@ COMMAND OPTIONS
|
|
74
74
|
EXAMPLES
|
75
75
|
worlddb update --include ./world.db
|
76
76
|
worlddb update --include ./world.db --delete
|
77
|
-
|
77
|
+
```
|
78
78
|
|
79
79
|
|
80
80
|
### `load` Command
|
81
81
|
|
82
|
-
|
82
|
+
```
|
83
83
|
NAME
|
84
84
|
load - Load world fixtures
|
85
85
|
|
@@ -92,7 +92,7 @@ COMMAND OPTIONS
|
|
92
92
|
|
93
93
|
EXAMPLES
|
94
94
|
worlddb load --include ./world.db europe/countries
|
95
|
-
|
95
|
+
```
|
96
96
|
|
97
97
|
|
98
98
|
## Install
|
@@ -102,13 +102,11 @@ Just install the gem:
|
|
102
102
|
$ gem install worlddb
|
103
103
|
|
104
104
|
|
105
|
-
## Free Open Public Domain Datasets
|
106
|
-
|
107
|
-
- [`world.db`](https://github.com/openmundi) - free open public domain countries, regions, cities n more data for use in any (programming) language
|
108
|
-
|
109
105
|
|
110
106
|
## License
|
111
107
|
|
108
|
+

|
109
|
+
|
112
110
|
The `worlddb` scripts are dedicated to the public domain.
|
113
111
|
Use it as you please with no restrictions whatsoever.
|
114
112
|
|
data/Rakefile
CHANGED
@@ -3,21 +3,22 @@ require './lib/worlddb/cli/version.rb'
|
|
3
3
|
|
4
4
|
|
5
5
|
Hoe.spec 'worlddb' do
|
6
|
-
|
7
|
-
self.version =
|
6
|
+
|
7
|
+
self.version = WorldDbTool::VERSION
|
8
8
|
|
9
9
|
self.summary = "worlddb - world.db command line tool"
|
10
10
|
self.description = summary
|
11
11
|
|
12
|
-
self.urls = ['https://github.com/worlddb/world.db
|
12
|
+
self.urls = ['https://github.com/worlddb/world.db']
|
13
13
|
|
14
14
|
self.author = 'Gerald Bauer'
|
15
15
|
self.email = 'openmundi@googlegroups.com'
|
16
16
|
|
17
17
|
self.extra_deps = [
|
18
|
-
['worlddb-models', '>=2.
|
18
|
+
['worlddb-models', '>=2.4.0'],
|
19
19
|
### ['worlddb-service'],
|
20
20
|
|
21
|
+
['webservice', '>=0.6.1'],
|
21
22
|
['datafile', '>= 0.2.2'],
|
22
23
|
['fetcher', '>= 0.4.5'],
|
23
24
|
|
@@ -35,7 +36,7 @@ Hoe.spec 'worlddb' do
|
|
35
36
|
self.licenses = ['Public Domain']
|
36
37
|
|
37
38
|
self.spec_extras = {
|
38
|
-
required_ruby_version: '>=
|
39
|
+
required_ruby_version: '>= 2.3'
|
39
40
|
}
|
40
41
|
|
41
42
|
end
|
Binary file
|
data/bin/worlddb
CHANGED
File without changes
|
data/lib/worlddb.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
-
require 'worlddb/models' #
|
3
|
+
require 'worlddb/models' # Note: depends on core (aka worlddb-models)
|
4
|
+
|
5
|
+
require 'webservice'
|
4
6
|
|
5
7
|
require 'fetcher'
|
6
8
|
require 'datafile'
|
@@ -24,4 +26,61 @@ module WorldDb
|
|
24
26
|
end # module WorldDb
|
25
27
|
|
26
28
|
|
29
|
+
|
30
|
+
####
|
31
|
+
## used for server/service command
|
32
|
+
## "preconfigured" base class for webservice
|
33
|
+
class WorldDbService < Webservice::Base
|
34
|
+
include WorldDb::Models # e.g. Continent, Country, State, City, etc.
|
35
|
+
|
36
|
+
## (auto-)add some (built-in) routes
|
37
|
+
|
38
|
+
get '/version(s)?' do
|
39
|
+
{
|
40
|
+
"worlddb": WorldDbTool::VERSION,
|
41
|
+
"worlddb/models": WorldDb::VERSION,
|
42
|
+
## todo/fix: add some more libs - why? why not??
|
43
|
+
"activerecord": [ActiveRecord::VERSION::MAJOR,ActiveRecord::VERSION::MINOR,ActiveRecord::VERSION::TINY].join('.'),
|
44
|
+
"webservice": Webservice::VERSION,
|
45
|
+
"rack": "#{Rack::RELEASE} (#{Rack::VERSION.join('.')})", ## note: VERSION is the protocoll version as an array e.g.[1,2]
|
46
|
+
"ruby": "#{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]",
|
47
|
+
}
|
48
|
+
end
|
49
|
+
|
50
|
+
get '/(stats|tables)' do
|
51
|
+
{
|
52
|
+
"countries": WorldDb::Model::Country.count,
|
53
|
+
"states": WorldDb::Model::State.count,
|
54
|
+
"cities": WorldDb::Model::City.count,
|
55
|
+
"system": {
|
56
|
+
"props": ConfDb::Models::Prop.count,
|
57
|
+
"logs": LogDb::Models::Log.count,
|
58
|
+
}
|
59
|
+
}
|
60
|
+
end
|
61
|
+
|
62
|
+
get '/props(.:format)?' do # note: add format - lets you use props.csv and props.html
|
63
|
+
ConfDb::Models::Prop.all
|
64
|
+
end
|
65
|
+
|
66
|
+
get '/logs(.:format)?' do
|
67
|
+
LogDb::Models::Log.all
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
## add favicon support
|
72
|
+
get '/favicon.ico' do
|
73
|
+
## use 302 to redirect
|
74
|
+
## note: use strg+F5 to refresh page (clear cache for favicon.ico)
|
75
|
+
redirect '/webservice-worlddb-32x32.png'
|
76
|
+
end
|
77
|
+
|
78
|
+
get '/webservice-worlddb-32x32.png' do
|
79
|
+
send_file "#{WorldDbTool.root}/assets/webservice-worlddb-32x32.png"
|
80
|
+
end
|
81
|
+
|
82
|
+
end # class WorldDbService
|
83
|
+
|
84
|
+
|
85
|
+
|
27
86
|
WorldDb.main if __FILE__ == $0
|
data/lib/worlddb/cli/main.rb
CHANGED
@@ -8,11 +8,11 @@ module WorldDb
|
|
8
8
|
|
9
9
|
class Tool
|
10
10
|
def initialize
|
11
|
-
LogUtils::Logger.root.level = :info # set logging level to info
|
11
|
+
LogUtils::Logger.root.level = :info # set logging level to info
|
12
12
|
end
|
13
13
|
|
14
14
|
def run( args )
|
15
|
-
puts
|
15
|
+
puts WorldDbTool.banner
|
16
16
|
Toolii.run( args )
|
17
17
|
end
|
18
18
|
end
|
@@ -38,12 +38,12 @@ module WorldDb
|
|
38
38
|
end
|
39
39
|
|
40
40
|
logger = LogUtils::Logger.root
|
41
|
-
opts = WorldDb::Opts.new
|
41
|
+
opts = WorldDb::Opts.new
|
42
42
|
|
43
43
|
|
44
44
|
program_desc 'world.db command line tool'
|
45
45
|
|
46
|
-
version
|
46
|
+
version WorldDbTool::VERSION
|
47
47
|
|
48
48
|
=begin
|
49
49
|
### add to help use new sections
|
@@ -86,7 +86,7 @@ command [:build,:b] do |c|
|
|
86
86
|
c.action do |g,o,args|
|
87
87
|
|
88
88
|
datafile = Datafile::Datafile.load_file( './Datafile' )
|
89
|
-
datafile.download # datafile step 1 - download all datasets/zips
|
89
|
+
datafile.download # datafile step 1 - download all datasets/zips
|
90
90
|
|
91
91
|
connect_to_db( opts )
|
92
92
|
|
@@ -142,7 +142,7 @@ command [:new,:n] do |c|
|
|
142
142
|
|
143
143
|
## step 2: same as command build (todo - reuse code)
|
144
144
|
datafile = Datafile::Datafile.load_file( './Datafile' )
|
145
|
-
datafile.download # datafile step 1 - download all datasets/zips
|
145
|
+
datafile.download # datafile step 1 - download all datasets/zips
|
146
146
|
|
147
147
|
connect_to_db( opts ) ### todo: check let connect go first?? - for logging (logs) to db ???
|
148
148
|
|
@@ -159,9 +159,9 @@ end # command setup
|
|
159
159
|
desc 'Create DB schema'
|
160
160
|
command [:create] do |c|
|
161
161
|
c.action do |g,o,args|
|
162
|
-
|
162
|
+
|
163
163
|
connect_to_db( opts )
|
164
|
-
|
164
|
+
|
165
165
|
WorldDb.create_all
|
166
166
|
|
167
167
|
puts 'Done.'
|
@@ -180,10 +180,10 @@ command [:setup,:s] do |c|
|
|
180
180
|
c.action do |g,o,args|
|
181
181
|
|
182
182
|
connect_to_db( opts )
|
183
|
-
|
183
|
+
|
184
184
|
## todo: document optional setup profile arg (defaults to all)
|
185
185
|
setup = args[0] || 'all'
|
186
|
-
|
186
|
+
|
187
187
|
WorldDb.create_all
|
188
188
|
|
189
189
|
WorldDb.read_setup( "setups/#{setup}", opts.data_path )
|
@@ -234,7 +234,7 @@ command [:load, :l] do |c|
|
|
234
234
|
c.action do |g,o,args|
|
235
235
|
|
236
236
|
connect_to_db( opts )
|
237
|
-
|
237
|
+
|
238
238
|
if o[:delete].present?
|
239
239
|
## todo/fix: also delete TagDb.delete!
|
240
240
|
WorldDb.delete!
|
@@ -271,9 +271,11 @@ command :props do |c|
|
|
271
271
|
c.action do |g,o,args|
|
272
272
|
|
273
273
|
connect_to_db( opts )
|
274
|
-
|
274
|
+
|
275
275
|
### fix: use ConfDb.dump or similar (for reuse) !!!
|
276
|
-
|
276
|
+
ConfDb::Models::Prop.all.each do |prop|
|
277
|
+
puts "#{prop.key} | #{prop.value}"
|
278
|
+
end
|
277
279
|
|
278
280
|
puts 'Done.'
|
279
281
|
end
|
@@ -286,16 +288,57 @@ command :logs do |c|
|
|
286
288
|
|
287
289
|
connect_to_db( opts )
|
288
290
|
|
289
|
-
### fix: use LogDb.dump or similar (for reuse) !!!!
|
291
|
+
### fix: use LogDb.dump or similar (for reuse) !!!!
|
290
292
|
LogDb::Models::Log.all.each do |log|
|
291
293
|
puts "[#{log.level}] -- #{log.msg}"
|
292
294
|
end
|
293
|
-
|
295
|
+
|
294
296
|
puts 'Done.'
|
295
297
|
end
|
296
298
|
end
|
297
299
|
|
298
300
|
|
301
|
+
|
302
|
+
desc 'Start web service (HTTP JSON API)'
|
303
|
+
arg_name 'NAME' # optional setup profile name
|
304
|
+
command [:serve,:server,:s] do |c|
|
305
|
+
|
306
|
+
c.action do |g,o,args|
|
307
|
+
|
308
|
+
## todo: document optional script arg (defaults to service)
|
309
|
+
script = args[0] || 'service'
|
310
|
+
|
311
|
+
## todo/fix: add support for (default) Service (with no extension)
|
312
|
+
|
313
|
+
script_path = "#{script}.rb" ## auto-add .rb extension
|
314
|
+
|
315
|
+
unless File.exist?( script_path ) ## if file doesn't exist try to fetch service script
|
316
|
+
script_path = "./#{script}.rb" ## use / save script in local (current) working dir/folder
|
317
|
+
worker = Fetcher::Worker.new
|
318
|
+
## note: lets use http:// instead of https:// for now - lets us use person proxy (NOT working w/ https for now)
|
319
|
+
worker.copy( "http://github.com/worlddb/world.db.service/raw/master/#{script}.rb", script_path )
|
320
|
+
end
|
321
|
+
|
322
|
+
|
323
|
+
code = File.read_utf8( script_path )
|
324
|
+
|
325
|
+
connect_to_db( opts )
|
326
|
+
|
327
|
+
WorldDb.tables ## print table stats
|
328
|
+
|
329
|
+
WorldDbService.class_eval( code ) ## note: MUST use class_eval (do NOT use instance_eval) !!!
|
330
|
+
|
331
|
+
puts "dump routes:"
|
332
|
+
pp WorldDbService.routes
|
333
|
+
|
334
|
+
puts "starting server..."
|
335
|
+
WorldDbService.run!
|
336
|
+
|
337
|
+
puts 'Done.'
|
338
|
+
end
|
339
|
+
end # command serve
|
340
|
+
|
341
|
+
|
299
342
|
desc '(Debug) Test command suite'
|
300
343
|
command :test do |c|
|
301
344
|
c.action do |g,o,args|
|
@@ -307,11 +350,11 @@ command :test do |c|
|
|
307
350
|
pp o
|
308
351
|
puts "g (#{g.class.name}):"
|
309
352
|
pp g
|
310
|
-
|
353
|
+
|
311
354
|
LogUtils::Logger.root.debug 'test debug msg'
|
312
355
|
LogUtils::Logger.root.info 'test info msg'
|
313
356
|
LogUtils::Logger.root.warn 'test warn msg'
|
314
|
-
|
357
|
+
|
315
358
|
puts 'Done.'
|
316
359
|
end
|
317
360
|
end
|
@@ -351,4 +394,3 @@ end
|
|
351
394
|
|
352
395
|
end # class Toolii
|
353
396
|
end # module WorldDb
|
354
|
-
|
data/lib/worlddb/cli/version.rb
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
# Note: WorldDb::VERSION gets used by core, that is, worlddb-models
|
4
4
|
|
5
5
|
|
6
|
-
module
|
6
|
+
module WorldDbTool # todo/check - rename to WorldDbTool or WorldDbCommands or WorldDbShell ??
|
7
7
|
|
8
8
|
MAJOR = 2 ## todo: namespace inside version or something - why? why not??
|
9
|
-
MINOR =
|
9
|
+
MINOR = 4
|
10
10
|
PATCH = 0
|
11
11
|
VERSION = [MAJOR,MINOR,PATCH].join('.')
|
12
12
|
|
@@ -22,4 +22,4 @@ module WorldDbCli # todo/check - rename to WorldDbTool or WorldDbCommands or
|
|
22
22
|
"#{File.expand_path( File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) )}"
|
23
23
|
end
|
24
24
|
|
25
|
-
end # module
|
25
|
+
end # module WorldDbTool
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: worlddb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: worlddb-models
|
@@ -16,14 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: 2.4.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
26
|
+
version: 2.4.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: webservice
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.6.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.6.1
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: datafile
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,14 +114,14 @@ dependencies:
|
|
100
114
|
requirements:
|
101
115
|
- - "~>"
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: '3.
|
117
|
+
version: '3.16'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
122
|
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version: '3.
|
124
|
+
version: '3.16'
|
111
125
|
description: worlddb - world.db command line tool
|
112
126
|
email: openmundi@googlegroups.com
|
113
127
|
executables:
|
@@ -122,13 +136,14 @@ files:
|
|
122
136
|
- Manifest.txt
|
123
137
|
- README.md
|
124
138
|
- Rakefile
|
139
|
+
- assets/webservice-worlddb-32x32.png
|
125
140
|
- bin/worlddb
|
126
141
|
- lib/worlddb.rb
|
127
142
|
- lib/worlddb/cli/main.rb
|
128
143
|
- lib/worlddb/cli/opts.rb
|
129
144
|
- lib/worlddb/cli/version.rb
|
130
145
|
- lib/worlddb/console.rb
|
131
|
-
homepage: https://github.com/worlddb/world.db
|
146
|
+
homepage: https://github.com/worlddb/world.db
|
132
147
|
licenses:
|
133
148
|
- Public Domain
|
134
149
|
metadata: {}
|
@@ -142,7 +157,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
142
157
|
requirements:
|
143
158
|
- - ">="
|
144
159
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
160
|
+
version: '2.3'
|
146
161
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
162
|
requirements:
|
148
163
|
- - ">="
|
@@ -150,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
165
|
version: '0'
|
151
166
|
requirements: []
|
152
167
|
rubyforge_project:
|
153
|
-
rubygems_version: 2.
|
168
|
+
rubygems_version: 2.5.2
|
154
169
|
signing_key:
|
155
170
|
specification_version: 4
|
156
171
|
summary: worlddb - world.db command line tool
|