slyce 1.3.1 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
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