Experimental multi-statefile thing; just checking this in for the
authorAdam Sampson <ats@offog.org>
Sat, 20 Sep 2003 21:42:57 +0000 (21:42 +0000)
committerAdam Sampson <ats@offog.org>
Sat, 20 Sep 2003 21:42:57 +0000 (21:42 +0000)
  record, since I'm about to replace it...

rawdoglib/rawdog.py

index c21b636792367e2623730d4c71108ac5ab032c58..1a38389cdcb011a53e17aa5707e678cad3e3fcb8 100644 (file)
@@ -554,8 +554,22 @@ def main(argv):
                print >>sys.stderr, err
                return 1
 
-       persister = Persister(config["statefile"], Rawdog)      
-       rawdog = persister.load()
+       persister = None
+       rawdog = None
+
+       prev_statefile = None
+       def change_statefile(name):
+               if prev_statefile == name:
+                       return
+               if persister is not None:
+                       persister.save()
+               persister = None
+               if name is not None:
+                       persister = Persister(name, Rawdog)
+                       rawdog = persister.load()
+               prev_statefile = name
+
+       change_statefile(config["statefile"])
 
        for o, a in optlist:
                if o in ("-u", "--update"):
@@ -573,10 +587,11 @@ def main(argv):
                                print >>sys.stderr, "In " + a + ":"
                                print >>sys.stderr, err
                                return 1
+                       change_statefile(config["statefile"])
                elif o in ("-t", "--show-template"):
                        rawdog.show_template(config)
 
-       persister.save()
+       change_statefile(None)
 
        return 0