Sha256: 8d076240466e18a29ac3525c553ca197d47e4e919247adab70ad089a62148d81

Contents?: true

Size: 1.56 KB

Versions: 1

Compression:

Stored size: 1.56 KB

Contents

require 'thor/group'

module Bookshop
  module Commands
    class Build < Thor::Group
      include Thor::Actions
      
      ARGV << '--help' if ARGV.empty?

      aliases = {
        "p"  => "pdf"
      }

      build = ARGV.shift
      build = aliases[build] || build

      # Define arguments and options
      argument :type,                   :type => :string

      # Define source root of application
      def self.source_root
        File.dirname(__FILE__)
      end
      
      case build
      when 'pdf'
        puts "Deleting your old ebook"
        File.delete("builds/pdf/book.pdf") if File::exists?( "builds/pdf/book.pdf" )
        puts "File Deleted"
        puts "Building new pdf at builds/pdf/book.pdf"
        cmd = %x[java org.apache.fop.cli.Main -xml book/book.xml -xsl stylesheets/fo-stylesheet.xsl builds/pdf/book.pdf]
      
      when 'epub'
        puts "Deleting your old ebook"
        File.delete("builds/epub/book.epub") if File::exists?( "builds/epub/book.epub" )
        puts "File Deleted"
        puts "Building new pdf at builds/epub/book.epub"
        cmd = %x[tools/xsl/epub/bin/dbtoepub -v book/book.xml -o builds/epub/book.epub]
        
      else
        puts "Error: Command not recognized" unless %w(-h --help).include?(build)
        puts <<-EOT
      Usage: bookshop build [ARGS]

      The most common build commands are:
       pdf          Builds a new pdf at /builds/pdf/book.pdf
       epub         Builds a new epub at /builds/epub/book.epub

      All commands can be run with -h for more information.
        EOT
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bookshop-0.0.3 lib/bookshop/commands/build.rb