]> git.decadent.org.uk Git - dak.git/blobdiff - queue_rss.py
catch and output file write errors
[dak.git] / queue_rss.py
index 2f0ee1492b6407bbe325f1202136545dd885760e..9ca66abbe435ad9654c64a37477bc029bdf10f2e 100755 (executable)
@@ -147,10 +147,12 @@ if __name__ == "__main__":
 
     if not os.path.exists(settings.outdir):
         sys.stderr.write("Outdir '%s' does not exists\n" % settings.outdir)
+        parser.print_help()
         sys.exit(1)
 
     if not os.path.exists(settings.datadir):
         sys.stderr.write("Datadir '%s' does not exists\n" % settings.datadir)
+        parser.print_help()
         sys.exit(1)
 
     status_db = os.path.join(settings.datadir, db_filename)
@@ -174,11 +176,19 @@ if __name__ == "__main__":
     feed_in_file = os.path.join(settings.outdir, inrss_filename)
     feed_out_file = os.path.join(settings.outdir, outrss_filename)
 
-    status.feed_in.write_xml(file(feed_in_file, "w+"), "utf-8")
-    status.feed_out.write_xml(file(feed_out_file, "w+"), "utf-8")
+    try:
+        status.feed_in.write_xml(file(feed_in_file, "w+"), "utf-8")
+        status.feed_out.write_xml(file(feed_out_file, "w+"), "utf-8")
+    except IOError, why:
+        sys.stderr.write("Unable to write feeds: %s\n", why)
+        sys.exit(1)
 
     status.queue = current_queue
 
-    cPickle.dump(status, open(status_db, "w+"))
+    try:
+        cPickle.dump(status, open(status_db, "w+"))
+    except IOError, why:
+        sys.stderr.write("Unable to save status: %s\n", why)
+        sys.exit(1)
 
 # vim:et:ts=4