class KoboNotesBinder::Cli

Public Instance Methods

parse(argv, defaults) click to toggle source
# File lib/kobo_notes_binder/cli.rb, line 40
def parse(argv, defaults)
  options = {}.merge defaults
  OptionParser.new do |opts|
    opts.banner = "Usage: kobo_notes_binder [options]"

    opts.on("-kPATH", "--kobo=PATH",
      "Path to kobo device. Default: #{options[:kobo_device_path]}") do |v|
      options[:kobo_device_path] = v
    end
    opts.on("-oPATH", "--output=PATH", "Output folder. Default: #{options[:output_folder]}") do |v|
      options[:output_folder] = v
    end
    opts.on("-p", "--open", "Open file at the end") do |v|
      options[:open] = v
    end
    opts.on("-aNAME", "--application=NAME", "Application name to open epub") do |v|
      options[:application_name] = v
    end
    opts.on("-d", "--debug", "Enable debug mode") do |v|
      options[:debug_mode] = v
    end
    opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
      options[:verbose] = v
    end
  end.parse!(argv)

  options
end
start(argv) click to toggle source
# File lib/kobo_notes_binder/cli.rb, line 5
def start(argv)
  argv = argv.dup
  defaults = {
    kobo_device_path: '/Volumes/KOBOeReader',
    output_folder: '~/Desktop',

    # Dev data
    # tmp_dir: '/Users/anton/projects/kobo_notes_binder/tmp/tmp_dir',
    # local_kobo_db_path: '/Users/anton/projects/ank/tmp/tmp_dir/KoboReader.sqlite',
    # local_original_epub_path: '/Users/anton/projects/ank/tmp/tmp_dir/Nine Lies About Work_ A Freethinking Leader’s Guide to the Real World.kepub.epub',
    # volume_url: "file:///mnt/onboard/kepub/Nine Lies About Work_ A Freethinking Leader’s Guide to the Real World.kepub.epub"
  }
  options = parse(argv, defaults)
  puts options

  runner = KoboNotesBinder::Runner.new(options, kobo_device_path: options[:kobo_device_path])
  tmp_epub_path = runner.execute

  puts 'Moving book to desktop'

  new_epub_path = File.expand_path(options[:output_folder]) + '/' + File.basename(tmp_epub_path)
  FileUtils.mv tmp_epub_path, new_epub_path

  if options[:open]
    cmd_args = ['open']

    if options[:application_name]
      cmd_args += ['-a', options[:application_name]]
    end

    puts 'Opening file'
    system *cmd_args, new_epub_path
  end
end