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
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)
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"])