diff options
Diffstat (limited to 'gitautodeploy')
-rw-r--r-- | gitautodeploy/cli/config.py | 10 | ||||
-rw-r--r-- | gitautodeploy/gitautodeploy.py | 24 |
2 files changed, 17 insertions, 17 deletions
diff --git a/gitautodeploy/cli/config.py b/gitautodeploy/cli/config.py index cd8c54c..4ca677d 100644 --- a/gitautodeploy/cli/config.py +++ b/gitautodeploy/cli/config.py @@ -5,7 +5,7 @@ def get_config_defaults(): config['quiet'] = False config['daemon-mode'] = False config['config'] = None - config['ssh-keygen'] = False + config['ssh-keyscan'] = False config['force'] = False config['ssl'] = False config['ssl-pem-file'] = '~/.gitautodeploy.pem' @@ -44,8 +44,8 @@ def get_config_from_environment(): if 'GAD_CONFIG' in os.environ: config['config'] = os.environ['GAD_CONFIG'] - if 'GAD_SSH_KEYGEN' in os.environ: - config['ssh-keygen'] = True + if 'GAD_SSH_KEYSCAN' in os.environ: + config['ssh-keyscan'] = True if 'GAD_FORCE' in os.environ: config['force'] = True @@ -90,9 +90,9 @@ def get_config_from_argv(argv): dest="config", type=str) - parser.add_argument("--ssh-keygen", + parser.add_argument("--ssh-keyscan", help="scan repository hosts for ssh keys", - dest="ssh-keygen", + dest="ssh-keyscan", action="store_true") parser.add_argument("--force", diff --git a/gitautodeploy/gitautodeploy.py b/gitautodeploy/gitautodeploy.py index 8f3b172..c553362 100644 --- a/gitautodeploy/gitautodeploy.py +++ b/gitautodeploy/gitautodeploy.py @@ -130,22 +130,22 @@ class GitAutoDeploy(object): logger = logging.getLogger() for repository in self._config['repositories']: + + if not 'url' in repository: + continue - url = repository['url'] - logger.info("Scanning repository: %s" % url) - m = re.match('.*@(.*?):', url) + logger.info("Scanning repository: %s" % repository['url']) + m = re.match('[^\@]+\@([^\:\/]+)(:(\d+))?', repository['url']) if m is not None: - port = repository['port'] - port = '' if port is None else ('-p' + port) - ProcessWrapper().call(['ssh-keyscan -t ecdsa,rsa ' + - port + ' ' + - m.group(1) + - ' >> ' + - '$HOME/.ssh/known_hosts'], shell=True) + host = m.group(1) + port = m.group(3) + port_arg = '' if port is None else ('-p %s ' % port) + cmd = 'ssh-keyscan %s%s >> $HOME/.ssh/known_hosts' % (port_arg, host) + ProcessWrapper().call([cmd], shell=True) else: - logger.error('Could not find regexp match in path: %s' % url) + logger.error('Could not find regexp match in path: %s' % repository['url']) def kill_conflicting_processes(self): """Attempt to kill any process already using the configured port.""" @@ -281,7 +281,7 @@ class GitAutoDeploy(object): fileHandler.setFormatter(logFormatter) logger.addHandler(fileHandler) - if 'ssh-keygen' in self._config and self._config['ssh-keygen']: + if 'ssh-keyscan' in self._config and self._config['ssh-keyscan']: logger.info('Scanning repository hosts for ssh keys...') self.ssh_key_scan() |