Esempio n. 1
0
def choose_plugin_repositories(protocol) -> list:
    """
    Allows the user to add custom defined git repository containing plugins

    :return: list of plugins to enable
    """
    repositories = get_global_conf().getlist("plugins", "repositories")

    while True:
        answer = ask_question(
            "Do you want to add or remove plugin repositories ?\nEnabled Repositories :\n\t{}\n"
            "[Add/Remove]. Press enter to keep as is.".format("\n\t".join(
                format_list_numbered(repositories, ""))),
            validate_answers=validate_add_remove_question,
            default="")

        if answer == "":
            break

        elif answer == "a":
            repo_to_add = ask_question(
                "What git repository do you want to add for plugins ? Hit enter to cancel.\n",
                validate_answers=validate_git_url,
                default="")
            if repo_to_add is not "":
                repositories.append(repo_to_add)  # pylint: disable=no-member

        elif answer == "r":
            repo_to_delete = ask_question(
                "Which repository do you want to remove ? Hit enter to cancel.\n\t{}\n"
                .format("\n\t".join(format_list_numbered(repositories, ""))),
                validate_answers=validate_multiple_choice,
                default="",
                answer_list=repositories)

            repositories.remove(repo_to_delete)  # pylint: disable=no-member

    for repository in repositories:
        repository_name = repository.split("/")[-1].split(".")[0]
        logging.info("Pulling %(repository)s",
                     dict(repository=repository_name))
        repository_directory = os.path.join(constants.PLUGINS_PATH,
                                            repository_name)

        git = Git(repository_directory, repository, protocol=protocol)
        git.update_to_commit("master")

    return repositories
Esempio n. 2
0
def choose_compiler() -> str:
    """
    Allows the user to choose his compiler
    :return: the compiler to use
    """
    compilers = []

    for package in os.listdir(constants.PLUGINS_PATH):
        if os.path.isdir(os.path.join(constants.PLUGINS_PATH, package)):
            compilers_dir = os.path.join(constants.PLUGINS_PATH, package,
                                         "compilers")
            if os.path.exists(compilers_dir):
                compilers.extend([
                    "{}.{}".format(package,
                                   compiler.split(".")[0])
                    for compiler in os.listdir(compilers_dir)
                ])

    return ask_question("Which compiler do you want to use ?\n\t{}\n".format(
        "\n\t".join(
            format_list_numbered(compilers,
                                 get_global_conf().get("install",
                                                       "compiler")))),
                        validate_answers=validate_multiple_choice,
                        default=get_global_conf().get("install", "compiler"),
                        answer_list=compilers)
Esempio n. 3
0
def choose_git_protocol() -> str:
    """
    Choose which protocol to use with git
    :return the protocol to use with git
    """
    return ask_question(
        "WHat protocol do you want to use for git ? \n\t{}\n".format(
            "\n\t".join(
                format_list_numbered(["https", "ssh"],
                                     get_global_conf().get(
                                         "install", "git_protocol")))),
        validate_answers=validate_multiple_choice,
        default=get_global_conf().get("install", "git_protocol"),
        answer_list=["https", "ssh"])