bin/review-compile in review-1.4.0 vs bin/review-compile in review-1.5.0

- old
+ new

@@ -17,10 +17,11 @@ $LOAD_PATH.unshift((bindir + '../lib').realpath) require 'review' require 'review/compiler' require 'review/book' +require 'review/i18n' require 'fileutils' require 'optparse' def main Signal.trap(:INT) { exit 1 } @@ -141,59 +142,43 @@ exit 1 end begin config["builder"] = target + ReVIEW::I18n.setup(config["language"]) - compiler = ReVIEW::Compiler.new(load_strategy_class(target, check_only)) case mode when :files if ARGV.empty? error 'no input' exit 1 end - begin - ReVIEW::Book::Chapter.intern_pathes(ARGV).each do |chap| - chap.book.config = config # needs only at the first time - result = compiler.compile(chap) - if output_filename - write output_filename, result - else - puts result unless check_only - end - end - rescue => e - # PART - book = ReVIEW::Book::Base.load_default - book.config = config - part = book.parts_in_file.select do |part_item| - ARGV.map{|path| File.basename path}.include? part_item.path - end - if part.present? - result = compiler.compile(part.first) - if output_filename - write output_filename, result - else - puts result unless check_only - end + basedir = File.dirname(ARGV[0]) + book = ReVIEW::Book::Base.load(basedir) + book.config = config # needs only at the first time + ARGV.each do |item| + chap_name = File.basename(item, '.*') + chap = book.chapter(chap_name) + compiler = ReVIEW::Compiler.new(load_strategy_class(target, check_only)) + result = compiler.compile(chap) + if output_filename + write output_filename, result else - raise e + puts result unless check_only end end when :dir - book = basedir ? ReVIEW::Book.load(basedir) : ReVIEW::Book::Base.load_default + book = basedir ? ReVIEW::Book.load(basedir) : ReVIEW::Book::Base.load book.config = config + compiler = ReVIEW::Compiler.new(load_strategy_class(target, check_only)) book.chapters.each do |chap| str = compiler.compile(chap) write "#{chap.name}#{compiler.strategy.extname}", str unless check_only end # PART book.parts_in_file.each do |part| str = compiler.compile(part) - if compiler.strategy.extname == ".tex" - str.gsub!(/\A\\chapter\{/, '\part{') # FIXME: UGLY... - end write "#{part.name}#{compiler.strategy.extname}", str unless check_only end else raise "must not happen: #{mode}" end