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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/slyce +24 -2
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ba003aec5b58e63630c2b5fc40437ecfc841e8b2c2239fea6fba2cc785687d8
4
- data.tar.gz: 3713c8ea0c95383fad5151012553a4f22fba837925d19839bcef5abadba1b2d6
3
+ metadata.gz: d593f1fb756c6af9643dfa496027cb39cd85451f351d3dd2541cbfa340b1c7b3
4
+ data.tar.gz: 13753300c5bbebb1b40998bc1cb1c9397b0a2c9ab2691fb9a21f0de1252c3b68
5
5
  SHA512:
6
- metadata.gz: e93706e9acd8ce49b35d1c47c19cffb388ab3e77dbe1cdeff9f1e817c3b89d5b854edbafb1422951d82b4a395c63882cf6f267c4bff772597a830ea13cc98c42
7
- data.tar.gz: cec5303f23cd5e5370c349e566f1afed2d5a7f3a6b094aede4ba7c851aeaf2ef76f58adfe1148660b3e852bfea4923ade8dab40ae73e9c656560f55a210f05d6
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.1"
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slyce
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Shreeve