+require 'navigator'
+require 'page'
+require 'store'
require 'walkdir'
outputDir = 'output'
-books = []
+book_ids = []
imageCount = 0
-for arg in ARGV
- w = WalkDir.new(arg)
- books += (w.books)
+def handleArg(arg)
+ if "--purge" == arg
+ puts 'Purging database...'
+ @store.dropSchema()
+ if File.exists?(Store.unclassified_csv)
+ File.delete(Store.unclassified_csv)
+ end
+ elsif arg.start_with?("--")
+ abort('ERROR: Unrecognized option "' + arg + '".')
+ end
end
-if ! Dir.exist?(outputDir)
- Dir.mkdir(outputDir)
+@store = Store.new()
+@store.connect()
+
+for arg in ARGV
+ handleArg(arg)
end
-open(outputDir + '/index.html', 'w') do |fd|
- fd.puts "<html>"
- fd.puts " <head><title>Books</title></head>"
- fd.puts " <body>"
- fd.puts " <table>"
-
- for book in books
- image = nil
- if nil != book.cover
- imageCount += 1
- (path, mimeType) = book.cover.writeImage(outputDir, 'image' + imageCount.to_s)
- image = '<img src="' + path + '"/>'
- else
- image = '(No cover image)'
- end
+@store.init_db()
- fd.puts " <tr><td>" + image + "</td><td>" + book.describe() + "</td></tr>"
+for arg in ARGV
+ if ! arg.start_with?("--")
+ puts 'Scanning directory "' + arg + '"...'
+ w = WalkDir.new(@store, arg)
+ book_ids += (w.books)
end
-
- fd.puts " </table>"
- fd.puts " </body>"
- fd.puts "</html>"
end
+puts 'Creating output...'
+
+navigator = Navigator.new(@store)
+navigator.write_atoz_pages()
+navigator.write_series_listing()
+navigator.write_dewey()
+
+@store.disconnect()
+