class Klipbook::CLI
Public Class Methods
new(config=Klipbook::Config.new)
click to toggle source
# File lib/klipbook/cli.rb, line 7 def initialize(config=Klipbook::Config.new) @config = config.read end
Public Instance Methods
execute!()
click to toggle source
# File lib/klipbook/cli.rb, line 11 def execute! program :name, 'Klipbook' program :version, Klipbook::VERSION program :description, "Klipbook exports the clippings you've saved on your Kindle into JSON, Markdown, or pretty HTML" program :help, 'Source', "You must specify `--from-file` as an input." program :help, 'Config', "Note that command options can be stored in a file called ~/.klipbookrc. This file is YAML formatted and options should be snake case e.g.\n\n" + ":output_dir: ~/my/default/output/directory\n" default_command :help command :list do |c| c.syntax = "klipbook list" c.description = "List the books in the clippings file" c.option '--from-file FILE', String, "Input clippings file" c.option '-c', '--count COUNT', Integer, "Maximum number of books to list (default is #{Config::DEFAULT_MAXBOOKS})" c.action do |_args, options| merge_config(options, @config) Klipbook::Commands::List.new.run!(options) end end command :export do |c| c.syntax = 'klipbook export' c.description = 'Export book clippings' c.option '--from-file FILE', String, "Input clippings file" c.option '-c', '--count COUNT', Integer, "Maximum number of books to list (default is #{Config::DEFAULT_MAXBOOKS})" c.option '--format FORMAT', "Format to export in [html, markdown, or json]" c.option '--output-dir DIRECTORY', "Directory to export files to (default pwd)" c.option '-f', '--force', "Force overwrite of existing files" c.action do |_args, options| merge_config(options, @config) Klipbook::Commands::Export.new.run!(options) end end run! end
Private Instance Methods
merge_config(options, config)
click to toggle source
# File lib/klipbook/cli.rb, line 58 def merge_config(options, config) config.delete(:from_file) if options.from_file options.default config end