Add --save-config to bin/hooke and don't silently save config file.
authorW. Trevor King <wking@drexel.edu>
Thu, 12 Aug 2010 16:12:10 +0000 (12:12 -0400)
committerW. Trevor King <wking@drexel.edu>
Thu, 12 Aug 2010 16:12:10 +0000 (12:12 -0400)
With the old implementation, setting --debug once would effectively
set it for all future calls :p.  There should be an explicit 'save
config' command if the user wishes to do so.

hooke/hooke.py

index cf6600ed8714fc8e6b4916a317935d79bb3e5a61..d9def059acc40035eaece866362e2e970049753a 100644 (file)
@@ -117,8 +117,9 @@ class Hooke (object):
     def load_ui(self):
         self.ui = ui.load_ui(self.config)
 
-    def close(self):
-        self.config.write() # Does not preserve original comments
+    def close(self, save_config=False):
+        if save_config == True:
+            self.config.write()  # Does not preserve original comments
 
     def run_command(self, command, arguments):
         """Run `command` with `arguments` using
@@ -198,6 +199,10 @@ def main():
         '--command-no-exit', dest='command_exit',
         action='store_false', default=True,
         help="Don't exit after running a script or commands.")
+    p.add_option(
+        '--save-config', dest='save_config',
+        action='store_true', default=False,
+        help="Automatically save a changed configuration on exit.")
     p.add_option(
         '--debug', dest='debug', action='store_true', default=False,
         help="Enable debug logging.")
@@ -226,10 +231,10 @@ def main():
             hooke = runner.run_lines(hooke, options.commands)
         finally:
             if options.command_exit == True:
-                hooke.close()
+                hooke.close(save_config=options.save_config)
                 sys.exit(0)
 
     try:
         hooke = runner.run(hooke)
     finally:
-        hooke.close()
+        hooke.close(save_config=options.save_config)