diff --git a/bin/cookie_extractor b/bin/cookie_extractor index daacc64..7b9128c 100755 --- a/bin/cookie_extractor +++ b/bin/cookie_extractor @@ -4,9 +4,19 @@ require File.expand_path(File.join(File.dirname(__FILE__), "..", "lib", "cookie_ # TODO: Locate cookie dbs automatically filename = ARGV.first -if filename - extractor = CookieExtractor::BrowserDetector.new_extractor(filename) - puts extractor.extract.join("\n") -else +unless filename puts "Usage: cookie_extractor /path/to/cookies.sqlite" + exit +end + +if File.exists?(filename) + begin + extractor = CookieExtractor::BrowserDetector.new_extractor(filename) + puts extractor.extract.join("\n") + rescue SQLite3::NotADatabaseException, + CookieExtractor::BrowserNotDetectedException + puts "Error: File '#{filename}' is not a Firefox or Chrome cookie database" + end +else + puts "Error: File '#{filename}' does not exist" end diff --git a/lib/cookie_extractor/browser_detector.rb b/lib/cookie_extractor/browser_detector.rb index 48e870d..dcf9468 100644 --- a/lib/cookie_extractor/browser_detector.rb +++ b/lib/cookie_extractor/browser_detector.rb @@ -1,4 +1,6 @@ module CookieExtractor + class BrowserNotDetectedException < Exception; end + class BrowserDetector def self.new_extractor(db_filename)