Add `arrived` attribute (file creation timestamp) to books table.
[quanlib.git] / main.rb
diff --git a/main.rb b/main.rb
index e1a52053b93f5c8c107d9178731d1169cfbd7388..e294b4a15e3391a0e4b84d41235b2eee1265ca31 100644 (file)
--- a/main.rb
+++ b/main.rb
@@ -1,44 +1,56 @@
-require 'navigator'
-require 'page'
-require 'store'
-require 'walkdir'
+require_relative 'navigator'
+require_relative 'page'
+require_relative 'store'
+require_relative 'walk_dir'
 
-outputDir = 'output'
+@outputDir = 'output'
 
-book_ids = []
-imageCount = 0
+@config_file = 'quanlib.ini'
+@skip_class = false
 
 def handleArg(arg)
-  if "--purge" == 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
 
-@store = Store.new()
+@store = Store.new(@config_file)
 @store.connect()
 
 for arg in ARGV
   handleArg(arg)
 end
 
-@store.init_db()
+@store.init_db(@skip_class)
 
 for arg in ARGV
   if ! arg.start_with?("--")
     puts 'Scanning directory "' + arg + '"...'
-    w = WalkDir.new(@store, arg)
-    book_ids += (w.books)
+    w = WalkDir.new(@config_file, arg)
+    w.books
   end
 end
 
+@store.cross_reference_lists
+
 puts 'Creating output...'
 
 navigator = Navigator.new(@store)
 navigator.write_atoz_pages()
 navigator.write_series_listing()
+navigator.write_dewey()
 
 @store.disconnect()