From 58775f8e06cf09bc23b63d33c6184ff34822e3b2 Mon Sep 17 00:00:00 2001 From: Jeff Dallien Date: Wed, 22 Feb 2012 19:33:25 -0500 Subject: [PATCH] Add some more useful error messages in the common situations (file doesn't exist, isn't a sqlite db) --- bin/cookie_extractor | 18 ++++++++++++++---- lib/cookie_extractor/browser_detector.rb | 2 ++ 2 files changed, 16 insertions(+), 4 deletions(-) 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)