open_geo_db 0.0.2 → 0.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.
- data/lib/open_geo_db/cli.rb +14 -33
- data/lib/open_geo_db/database.rb +40 -0
- data/lib/open_geo_db/version.rb +1 -1
- metadata +5 -4
data/lib/open_geo_db/cli.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
require "mixlib/cli"
|
2
1
|
require "yaml"
|
2
|
+
require "mixlib/cli"
|
3
|
+
require "open_geo_db/database"
|
3
4
|
|
4
5
|
module OpenGeoDb
|
5
6
|
class CLI
|
@@ -22,43 +23,23 @@ module OpenGeoDb
|
|
22
23
|
|
23
24
|
def run
|
24
25
|
parse_options
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
yaml = YAML.load_file(config_file)["open_geo_db"]
|
34
|
-
@database = yaml["database"]
|
35
|
-
@username = yaml["username"]
|
36
|
-
@password = "-p#{yaml["password"]}" if yaml["password"] and yaml["password"].any?
|
37
|
-
end
|
38
|
-
|
39
|
-
def create
|
40
|
-
load_config
|
41
|
-
sh("mysqladmin -u#{@username} #{@password} create #{@database}")
|
42
|
-
%w(opengeodb-begin DE DEhier AT AThier CH CHhier opengeodb-end).each do |basename|
|
43
|
-
file = File.join(File.dirname(__FILE__), %w(.. .. vendor sql), "#{basename}.sql")
|
44
|
-
sh("mysql -u#{@username} #{@password} #{@database} < #{file}")
|
26
|
+
action = config.keys.first
|
27
|
+
@config_file = config.values.first
|
28
|
+
if action == :generate
|
29
|
+
generate
|
30
|
+
else
|
31
|
+
puts("Using config file #{@config_file}")
|
32
|
+
database = OpenGeoDb::Database.new(YAML.load_file(@config_file)["open_geo_db"])
|
33
|
+
database.execute(action)
|
45
34
|
end
|
46
35
|
end
|
47
36
|
|
48
|
-
|
49
|
-
load_config
|
50
|
-
sh("mysqladmin -u#{@username} #{@password} drop -f #{@database}")
|
51
|
-
end
|
37
|
+
private
|
52
38
|
|
53
39
|
def generate
|
54
|
-
config_file = config.values.first
|
55
|
-
puts("Writing config to #{config_file}")
|
56
|
-
File.open(config_file, "w") { |f| f.write(DEFAULT_CONFIG.to_yaml) }
|
57
|
-
end
|
58
|
-
|
59
|
-
def sh(command)
|
60
|
-
puts(command)
|
61
|
-
%x{#{command}}
|
40
|
+
@config_file = config.values.first
|
41
|
+
puts("Writing config to #{@config_file}")
|
42
|
+
File.open(@config_file, "w") { |f| f.write(DEFAULT_CONFIG.to_yaml) }
|
62
43
|
end
|
63
44
|
end
|
64
45
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module OpenGeoDb
|
2
|
+
class Database
|
3
|
+
class UnknownActionError < ArgumentError
|
4
|
+
end
|
5
|
+
|
6
|
+
def initialize(config)
|
7
|
+
@database = config["database"]
|
8
|
+
@username = config["username"]
|
9
|
+
@password = "-p#{config["password"]}" if config["password"] and config["password"].any?
|
10
|
+
end
|
11
|
+
|
12
|
+
def execute(action)
|
13
|
+
case action
|
14
|
+
when :create then create
|
15
|
+
when :destroy then destroy
|
16
|
+
else
|
17
|
+
raise UnknownActionError, action
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def create
|
24
|
+
sh("mysqladmin -u#{@username} #{@password} create #{@database}")
|
25
|
+
%w(opengeodb-begin DE DEhier AT AThier CH CHhier opengeodb-end).each do |basename|
|
26
|
+
file = File.join(File.dirname(__FILE__), %w(.. .. vendor sql), "#{basename}.sql")
|
27
|
+
sh("mysql -u#{@username} #{@password} #{@database} < #{file}")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def destroy
|
32
|
+
sh("mysqladmin -u#{@username} #{@password} drop -f #{@database}")
|
33
|
+
end
|
34
|
+
|
35
|
+
def sh(command)
|
36
|
+
puts(command)
|
37
|
+
%x{#{command}}
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/open_geo_db/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: open_geo_db
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kostiantyn Kahanskyi
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-01-
|
18
|
+
date: 2012-01-19 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: mixlib-cli
|
@@ -65,6 +65,7 @@ files:
|
|
65
65
|
- bin/open_geo_db
|
66
66
|
- lib/open_geo_db.rb
|
67
67
|
- lib/open_geo_db/cli.rb
|
68
|
+
- lib/open_geo_db/database.rb
|
68
69
|
- lib/open_geo_db/version.rb
|
69
70
|
- open_geo_db.gemspec
|
70
71
|
- vendor/sql/.gitkeep
|