muse-dl/src/parser.cr

36 lines
812 B
Crystal

require "./errors/missing_link.cr"
module Muse::Dl
class Parser
@bookmarks : Bool
@tmp : String
@cleanup : Bool
@output : String
@url = "INVALID_URL"
getter :bookmarks, :tmp, :cleanup, :output, :url
def find_next(arg : Array(String), flag : String, default)
search = arg.index flag
if search
return arg[search + 1]
end
return default
end
def initialize(arg : Array(String) = [] of String)
@bookmarks = !arg.index "--no-bookmarks"
@cleanup = !arg.index "--no-cleanup"
@tmp = find_next(arg, "--tmp-dir", "/tmp")
@output = find_next(arg, "--output", "tempfilename.pdf")
begin
@url = arg[-1]
rescue e : Exception
@url = ""
raise Errors::MissingLink.new
end
end
end
end