Пример #1
0
    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))