handle ^C when running calypso in the foreground
authorJoe Nahmias <joe@nahmias.net>
Mon, 29 Apr 2013 21:46:31 +0000 (17:46 -0400)
committerKeith Packard <keithp@keithp.com>
Mon, 16 Sep 2013 02:07:07 +0000 (21:07 -0500)
calypso.py

index 6f74b6f3c4cebed239ea2a0aca7d0a82a36692bf..113a24c1b29398e8aaf8684e27dcdba74ef6ee2d 100755 (executable)
@@ -134,11 +134,14 @@ if options.import_dest:
         sys.exit(1)
 
 def run_server():
-    # Launch server
-    server_class = calypso.HTTPSServer if options.ssl else calypso.HTTPServer
-    server = server_class(
-        (options.host, options.port), calypso.CollectionHTTPHandler)
-    server.serve_forever(poll_interval=10)
+    try:
+        # Launch server
+        server_class = calypso.HTTPSServer if options.ssl else calypso.HTTPServer
+        server = server_class(
+            (options.host, options.port), calypso.CollectionHTTPHandler)
+        server.serve_forever(poll_interval=10)
+    except KeyboardInterrupt:
+        server.socket.close()
 
 # If foreground execution is requested, just run the server
 if not options.daemon: