class Faktura::CLI

Public Instance Methods

execute() click to toggle source
# File lib/faktura/cli.rb, line 15
    def execute
      if install?
        require 'fileutils'
        nautilus_dir = File.expand_path("~/.local/share/nautilus/scripts")
        FileUtils.mkdir_p nautilus_dir

        nautilus_script = File.expand_path(names[0], nautilus_dir)
        open(nautilus_script, "w") do |f|
          f.write <<END
#!/bin/bash

set -e 
set -u

faktura -swo "$1"
END
        end
        File.chmod(0755, nautilus_script)
        return
      end


      names.each do |name|
        if directory?
          Dir["#{name}/**/*.pdf"].each do |fn|
            process fn
          end
        else
          process name
        end
      end
    end
process(filename) click to toggle source
# File lib/faktura/cli.rb, line 48
def process(filename)
  pdf = PDF.new filename
  stamped_filename = nil

  puts "#{filename}: #{pdf}".colorize(:light_blue)
  if dump?
    puts pdf.content
  end

  if stamp?
    stamper = Faktura::Stamp.new(pdf)
    stamped = stamper.stamp(get_name, get_description(pdf))
    stamped_filename = output_file(filename)
    stamped.write stamped_filename
    puts "Created file #{stamped_filename}".colorize(:light_yellow)
  end

  if printer
    puts "Printing #{stamped_filename || filename} to printer #{printer}".colorize(:green)
    system('lpr', '-P', printer, stamped_filename || filename)
  end

  if open?
    system('xdg-open', stamped_filename || filename)
  end
end