diff options
Diffstat (limited to 'gitautodeploy/gitautodeploy.py')
-rw-r--r-- | gitautodeploy/gitautodeploy.py | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/gitautodeploy/gitautodeploy.py b/gitautodeploy/gitautodeploy.py index d572c8f..a9a5463 100644 --- a/gitautodeploy/gitautodeploy.py +++ b/gitautodeploy/gitautodeploy.py @@ -313,7 +313,7 @@ class GitAutoDeploy(object): sys.exit(1) - def run(self): + def serve_forever(self): """Start listening for incoming requests.""" import sys import socket @@ -334,6 +334,27 @@ class GitAutoDeploy(object): self.stop() self.exit() + def handle_request(self): + """Start listening for incoming requests.""" + import sys + import socket + import logging + + # Set up logging + logger = logging.getLogger() + + try: + self._server.handle_request() + + except socket.error, e: + logger.critical("Error on socket: %s" % e) + sys.exit(1) + + except KeyboardInterrupt, e: + logger.info('Requested close by keyboard interrupt signal') + self.stop() + self.exit() + def stop(self): if self._server is not None: @@ -347,7 +368,7 @@ class GitAutoDeploy(object): if signum == 1: self.setup(self._config) - self.run() + self.serve_forever() return elif signum == 2: @@ -362,7 +383,7 @@ class GitAutoDeploy(object): def main(): import signal from gitautodeploy import GitAutoDeploy - from cli.config import * + from cli.config import get_config_defaults, get_config_from_environment, get_config_from_argv, find_config_file, get_config_from_file, get_repo_config_from_environment, init_config import sys import os @@ -416,4 +437,4 @@ def main(): init_config(config) app.setup(config) - app.run() + app.serve_forever() |