implement autoload --reset
authorTero Marttila <terom@fixme.fi>
Wed, 11 Feb 2009 03:58:20 +0200
changeset 101 f5f53cc0ce16
parent 100 147be2910b02
child 102 e396613bc873
implement autoload --reset
scripts/search-index
--- a/scripts/search-index	Wed Feb 11 03:52:14 2009 +0200
+++ b/scripts/search-index	Wed Feb 11 03:58:20 2009 +0200
@@ -256,6 +256,35 @@
         # display
         _output_lines(options, lines)
 
+def _autoload_reset (options, channels) :
+    """
+        Reset old autoload state
+    """
+    
+    # warn
+    if not options.quiet :
+        print "[WARN] Resetting autoload state for: %s" % ', '.join(channel.id for channel in channels)
+    
+    # iter
+    for channel in channels :
+        # statefile path
+        statefile_path = os.path.join(options.autoload_state_path, 'chan-%s' % channel.id)
+
+        # is it present?
+        if not os.path.exists(statefile_path) :
+            if not options.quiet :
+                print "[WARN] No statefile found at %s" % statefile_path
+        
+        else :
+            if not options.quiet :
+                print "\t%s: " % channel.id,
+
+            # remove the statefile
+            os.remove(statefile_path)
+            
+            if not options.quiet :
+                print "OK"
+
 def cmd_autoload (options, *channel_names) :
     """
         Automatically loads all channel logs that have not been indexed yet (by logfile mtime)
@@ -270,6 +299,11 @@
     
     else :
         channels = [config.LOG_CHANNELS.lookup(channel_name) for channel_name in channel_names]
+    
+    # reset autoload state?
+    if options.reset :
+        _autoload_reset(options, channels)
+        print
 
     # iterate channels
     for channel in channels :
@@ -378,6 +412,11 @@
         # close+delete tempfile
         statefile_tmp.close()
         os.remove(statefile_tmppath)
+        
+        print
+    
+    # done
+    return
 
 def cmd_help (options, *args) :
     """
@@ -449,6 +488,7 @@
     parser.add_option(      "--create",         dest="create",          help="Create index database",               action="store_true" )
     parser.add_option(      "--skip-missing",   dest="skip_missing",    help="Skip missing logfiles",               action="store_true" )
     parser.add_option(      "--reload",         dest="reload",          help="Force reload lines",                  action="store_true" )
+    parser.add_option(      "--reset",          dest="reset",           help="Reset old autload state",             action="store_true" )
     parser.add_option(      "--ignore-resume",  dest="ignore_resume",   help="Do not try and resume interrupted autoload",  action="store_true" )
     parser.add_option(      "--quiet",          dest="quiet",           help="Supress status messages",             action="store_true" )