slyce 1.3.1 → 1.3.2
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/bin/slyce +24 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d593f1fb756c6af9643dfa496027cb39cd85451f351d3dd2541cbfa340b1c7b3
|
4
|
+
data.tar.gz: 13753300c5bbebb1b40998bc1cb1c9397b0a2c9ab2691fb9a21f0de1252c3b68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d11b2bad746f523480a8bdcc8659f64e381e63803cabfe4311741f3fe7f40129bfcd65dc1374ef77842c3f4bb2896d4280c2eb4697e1ff66a8c6f04f45d78657
|
7
|
+
data.tar.gz: 8da310dc995ca7b73439081666e9e6c62bc56fb9be8e06f8076976ee624923058a2f867f8a326a13c0e76c99391677d670f70cc482117fcc71b634812e5780d2
|
data/bin/slyce
CHANGED
@@ -11,7 +11,7 @@ dbas = nil
|
|
11
11
|
tabl = nil
|
12
12
|
|
13
13
|
OptionParser.new.instance_eval do
|
14
|
-
@version = "1.3.
|
14
|
+
@version = "1.3.2"
|
15
15
|
@banner = "usage: #{program_name} [options] <database> <table>"
|
16
16
|
|
17
17
|
on "--csv" , "Output comma separated values"
|
@@ -19,6 +19,7 @@ OptionParser.new.instance_eval do
|
|
19
19
|
on "--tsv" , "Output tab separated values"
|
20
20
|
on "-a", "--ascii" , "Convert data to ASCII using AnyAscii"
|
21
21
|
on "-c", "--columns" , "Display column names and quit"
|
22
|
+
on "-d", "--dump" , "Display table schema and quit"
|
22
23
|
on "-h", "--help" , "Show help and command usage" do Kernel.abort to_s; end
|
23
24
|
on "-n", "--natural" , "Sort naturally, not numerically"
|
24
25
|
on "-r", "--rows <count>" , "Rows of data to show", Integer
|
@@ -99,10 +100,31 @@ end
|
|
99
100
|
conn = Mysql2::Client.new(**conf, as: :array)
|
100
101
|
|
101
102
|
# get table names
|
102
|
-
if tabl.nil? || opts[:tables]
|
103
|
+
if tabl.nil? || opts[:dump] || opts[:tables]
|
103
104
|
resu = conn.sql("show tables")
|
104
105
|
tbls = resu.to_a.flatten
|
105
106
|
want = (want.empty? || opts[:tables]) ? tbls : want.select {|e| tbls.include?(e) }
|
107
|
+
|
108
|
+
#!# FIXME: this code is a mess... cleanup soon
|
109
|
+
|
110
|
+
if opts[:dump]
|
111
|
+
pict = "%Y-%m-%dT%H:%M:%S%z"
|
112
|
+
puts "-- Dump of `#{dbas}` database on #{Time.now.strftime(pict)}\n\n"
|
113
|
+
puts "set foreign_key_checks=0;\n\n" unless want.empty?
|
114
|
+
tail = []
|
115
|
+
want.each do |name|
|
116
|
+
text = conn.sql("show create table `#{name}`").to_a.flatten[1] + ";\n\n"
|
117
|
+
if text =~ /^create table/i
|
118
|
+
puts text
|
119
|
+
elsif text.gsub!(/^(create ).*?(?=view)/i, '\1')
|
120
|
+
tail << text
|
121
|
+
end
|
122
|
+
end
|
123
|
+
puts tail.join unless tail.empty?
|
124
|
+
puts "set foreign_key_checks=1;\n\n" unless want.empty?
|
125
|
+
exit
|
126
|
+
end
|
127
|
+
|
106
128
|
puts want
|
107
129
|
exit
|
108
130
|
end
|