X-Git-Url: http://jaekl.net/gitweb/?p=quanlib.git;a=blobdiff_plain;f=main.rb;h=564ba8b8159d523775146ca9324b3e96a1f0f83d;hp=4e73b07c0b490eca6eef199f504055406bfb907d;hb=8853161a81df93fb7ddb36e5dc2991f40fd230f0;hpb=061091d1fc2bb2351afc695a5fcbdbc19e48e03b diff --git a/main.rb b/main.rb index 4e73b07..564ba8b 100644 --- a/main.rb +++ b/main.rb @@ -1,40 +1,55 @@ -require 'walkdir' +require_relative 'navigator' +require_relative 'page' +require_relative 'store' +require_relative 'walkdir' -outputDir = 'output' +@outputDir = 'output' -books = [] -imageCount = 0 +book_ids = [] +@config_file = 'quanlib.ini' +@skip_class = false -for arg in ARGV - w = WalkDir.new(arg) - books += (w.books) +def handleArg(arg) + if arg.start_with?("--config=") + @config_file = arg[9..-1] + puts 'Using config file "' + @config_file + '".' + elsif "--purge" == arg + puts 'Purging database...' + @store.dropSchema() + if File.exists?(@store.unclassified_csv) + File.delete(@store.unclassified_csv) + end + elsif "--skip-class" == arg + puts 'Skipping load of classification table.' + @skip_class = true + elsif arg.start_with?("--") + abort('ERROR: Unrecognized option "' + arg + '".') + end end -if ! Dir.exist?(outputDir) - Dir.mkdir(outputDir) +@store = Store.new(@config_file) +@store.connect() + +for arg in ARGV + handleArg(arg) end -open(outputDir + '/index.html', 'w') do |fd| - fd.puts "" - fd.puts " Books" - fd.puts " " - fd.puts " " - - for book in books - image = nil - if nil != book.cover - imageCount += 1 - (path, mimeType) = book.cover.writeImage(outputDir, 'image' + imageCount.to_s) - image = '' - else - image = '(No cover image)' - end +@store.init_db(@skip_class) - fd.puts " " +for arg in ARGV + if ! arg.start_with?("--") + puts 'Scanning directory "' + arg + '"...' + w = WalkDir.new(@store, arg) + book_ids += (w.books) end - - fd.puts "
" + image + "" + book.describe() + "
" - fd.puts " " - fd.puts "" end +puts 'Creating output...' + +navigator = Navigator.new(@store) +navigator.write_atoz_pages() +navigator.write_series_listing() +navigator.write_dewey() + +@store.disconnect() +