def incoming_add(self, data, text): cmd = shlex.split(text)[1:] parser = ArgumentParser(prog="add", description='Add a new project') parser.add_argument("url", help="Git url of the repository") parser.add_argument( "--keystore", help="Path to the keystore file relative to the project root", default="") parser.add_argument("--keystore_pwd", help="Keystore password", default="") parser.add_argument("--key", help="Keystore key", default="") parser.add_argument("--key_pwd", help="Keystore key password", default="") parser.add_argument("--name", help="Name of the project (optional)", default="") try: args = parser.parse_args(cmd) args.url = re.sub(r"<mailto:(.+)\|(.+)>", lambda m: m.group(1), args.url) if self.store.is_url_exists(args.url): raise Exception("Project with url %s already exists" % args.url) project = Project(args.url, args.keystore, args.keystore_pwd, args.key, args.key_pwd, args.name) self.store.add_project(project) self.send_msg( data, """Project added with parameters: *Url:* %s *Keystore file path:* %s *Keystore password:* %s *Key:* %s *Key password:* %s *Name:* %s """ % (project.url, project.keystore_filename, project.keystore_pwd, project.key, project.key_pwd, project.name)) except Exception as ex: self.send_msg(data, str(ex))