Sha256: b305c3231d962898424f6d91900f1cff91fcb3c945a979d6d17ea84f40421778

Contents?: true

Size: 1.76 KB

Versions: 2

Compression:

Stored size: 1.76 KB

Contents

require 'thor'
require 'tmpdir'
require 'fileutils'
require_relative '../html2pdf'
module Html2Pdf
  class CLI < Thor
    desc 'export', 'export multiple html files to pdfs'
    method_option *AgileUtils::Options::BASE_DIR
    method_option *AgileUtils::Options::RECURSIVE
    method_option *AgileUtils::Options::VERSION
    def export
      opts = options.symbolize_keys

      unless Html2Pdf.softwares_installed?
        fail 'You must have valid `wkhtmltopdf` and `ghostscript` installation'
      end

      if opts[:version]
        puts "You are using Html2Pdf version #{Html2Pdf::VERSION}"
        exit
      end

      input_files = CodeLister.files base_dir: opts[:base_dir],
                                     exts: %w(html xhtml),
                                     recursive: true
      elapsed = AgileUtils::FileUtil.time do
        Html2Pdf.to_pdfs(input_files)
      end

      generated_files = AgileUtils::FileUtil.add_suffix(input_files, 'pdf')
      AgileUtils::FileUtil.tar_gzip_files(generated_files, 'html2pdf-output.tar.gz')
      AgileUtils::FileUtil.delete(generated_files)

      puts "Convert files to pdfs took #{elapsed} ms"
      puts "Your final output is #{File.absolute_path('html2pdf-output.tar.gz')}"
    end

    desc 'usage', 'Display usage information'
    def usage
      puts <<-EOT
Usage:
  html2pdf export [OPTIONS]

Options:
  -b, [--base-dir=BASE_DIR]                # Base directory
                                           # Default: . (current directory)
  -r, [--recursive], [--no-recursive]      # Search for files recursively
                                           # Default: true
  -v, [--version], [--no-version]          # Display version information

export multiple html files to pdfs
      EOT
    end

    default_task :usage
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
html2pdf-0.1.0 lib/html2pdf/cli.rb
html2pdf-0.0.7 lib/html2pdf/cli.rb