bin/ridgepole in ridgepole-0.1.3 vs bin/ridgepole in ridgepole-0.1.4
- old
+ new
@@ -1,10 +1,11 @@
#!/usr/bin/env ruby
$: << File.expand_path('../../lib', __FILE__)
require 'rubygems'
require 'yaml'
require 'optparse'
+require 'fileutils'
require 'ridgepole'
Version = Ridgepole::VERSION
DEFAULT_FILENAME = 'Schemafile'
@@ -31,10 +32,11 @@
opt.on('-m', '--merge') { set_mode[:apply]; options[:merge] = true }
opt.on('-f', '--file FILE') {|v| file = v }
opt.on('', '--dry-run') { options[:dry_run] = true }
opt.on('-e', '--export') { set_mode[:export] }
opt.on('', '--split') {|v| split = true }
+ opt.on('', '--split-with-dir') {|v| split = :with_dir }
opt.on('-o', '--output FILE') {|v| output_file = v }
opt.on('-t', '--tables TABLES', Array) {|v| options[:tables] = v }
opt.on('', '--disable-mysql-unsigned') { options[:disable_mysql_unsigned] = true }
opt.on('' , '--debug') { options[:debug] = true }
opt.parse!
@@ -64,23 +66,29 @@
output_file = DEFAULT_FILENAME if output_file == '-'
requires = []
client.dump do |name, definition|
- schema_file = File.join(File.dirname(output_file), "#{name}.schema")
- requires << schema_file
+ schema_dir = File.dirname(output_file)
+ schema_dir = File.join(schema_dir, name) if split == :with_dir
+ schema_file = File.join(schema_dir, "#{name}.schema")
+
+ require_path = (split == :with_dir) ? File.join(name, name) : name
+ requires << require_path
+
logger.info(" write `#{schema_file}`")
+ FileUtils.mkdir_p(schema_dir)
open(schema_file, 'wb') do |f|
f.puts definition
end
end
logger.info(" write `#{output_file}`")
open(output_file, 'wb') do |f|
- requires.each do |schema_file|
- f.puts "require '#{File.basename schema_file}'"
+ requires.each do |require_path|
+ f.puts "require '#{require_path}'"
end
end
else
if output_file == '-'
logger.info('# Export Schema')