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')