Ejemplo n.º 1
0
    def __init__(self,
                 config_repo_local,
                 config_repo_remote,
                 is_quiet,
                 is_verbose,
                 active_modules=None):
        self.config_repo_local = config_repo_local
        self.host_os = OS.from_string(sys.platform)
        self.cache_directory = CacheDirectory(
            package_manager=OS.get_package_manager(self.host_os))

        set_logging(is_quiet, is_verbose)

        if config_repo_remote is None:
            self.config_repo_remote = load_config_repo_remote(
                config_repo_local) if self.is_cloned else None
        else:
            self.config_repo_remote = config_repo_remote

        module_information = load_active_modules(
            config_repo_local, active_modules, self.host_os,
            self.cache_directory) if self.is_cloned else None

        self.modules = None if module_information is None else module_information[
            0]
        self.is_sudo_used = None if module_information is None else module_information[
            1]
        self.sudo_password = None
Ejemplo n.º 2
0
def install_language(env_manager, language_version, sudo_password=""):
    if env_manager == LanguageManager.PYENV:
        check_command = f"pyenv versions"
        check_response = run_command(check_command)

        if language_version in check_response:
            logger.info(
                f"Language Environment Manager: Already installed language version [language=python, version={language_version}]"
            )
            return

        logger.info(
            f"Language Environment Manager: Installing language version (this might take a bit, ~2 min) [language=python, version={language_version}]"
        )

        command = f"pyenv install {language_version}"
        run_command(command)

        logger.info(
            f"Language Environment Manager: Successfully installed language version [language=python, version={language_version}]"
        )
    elif env_manager == LanguageManager.JENV:
        host_system = OS.get_host_system()
        package_manager = OS.get_package_manager(host_system)

        if package_manager == PackageManager.BREW:
            install_java_version_via_homebrew(language_version, sudo_password)
        else:
            raise NotImplementedError(
                f"Language Environment Manager: Sorry, the requested package manager is not currently supported [package_manager={package_manager}]"
            )
    else:
        raise NotImplementedError(
            "Language Environment Manager: Sorry, the requested language manager is not currently supported (feel free to open an issue at https://github.com/JasonYao/pydotfiles/issues/new)"
        )
Ejemplo n.º 3
0
def uninstall_language_environment_manager(env_manager):
    host_system = OS.get_host_system()
    package_manager = OS.get_package_manager(host_system)

    if package_manager == PackageManager.BREW:
        uninstall_language_environment_manager_via_homebrew(env_manager)
    else:
        raise NotImplementedError(
            f"Language Environment Manager: Sorry, the requested package manager is not currently supported [package_manager={package_manager}]"
        )
Ejemplo n.º 4
0
 def __init__(self, name, shell, packages, applications, cache_directory,
              default_dock, settings, dock_manager):
     self.name = OS.from_string(name)
     self.shell = shell
     self.package_manager = OS.get_package_manager(self.name)
     self.packages = packages
     self.applications = applications
     self.cache_directory = cache_directory
     self.default_dock = default_dock
     self.settings = settings
     self.dock_manager = dock_manager
     self.sudo_password = None
Ejemplo n.º 5
0
    def uninstall(self):
        if not self.is_installed:
            logger.info(
                f"Language Environment Plugin Manager: Already uninstalled language environment plugin manager [env_plugin_manager={self.language_plugin_manager}]"
            )
            return

        host_system = OS.get_host_system()
        package_manager = OS.get_package_manager(host_system)

        if package_manager == PackageManager.BREW:
            uninstall_language_environment_plugin_manager_via_homebrew(
                self.language_plugin_manager)
        else:
            raise NotImplementedError(
                f"Language Environment Plugin Manager: Sorry, the requested package manager is not currently supported [package_manager={package_manager}]"
            )
Ejemplo n.º 6
0
def uninstall_language(env_manager, language_version, sudo_password=""):
    if env_manager == LanguageManager.PYENV:
        check_command = f"pyenv versions"
        check_response = run_command(check_command)

        if language_version not in check_response:
            logger.info(
                f"Language Environment Manager: Already uninstalled language version [language=python, version={language_version}]"
            )
            return

        logger.info(
            f"Language Environment Manager: Uninstalling language version [language=python, version={language_version}]"
        )

        command = f"pyenv uninstall {language_version}"
        run_command_with_communication(
            command, "y\n"
        )  # The 'y\n' is to confirm that we want to uninstall the given python version

        logger.info(
            f"Language Environment Manager: Successfully uninstalled language version [language=python, version={language_version}]"
        )
    elif env_manager == LanguageManager.JENV:
        host_system = OS.get_host_system()
        package_manager = OS.get_package_manager(host_system)

        if package_manager == PackageManager.BREW:
            uninstall_java_version_via_homebrew(language_version,
                                                sudo_password)
        else:
            raise NotImplementedError(
                f"Language Environment Manager: Sorry, the requested package manager is not currently supported [package_manager={package_manager}]"
            )
    else:
        raise NotImplementedError(
            "Language Environment Manager: Sorry, the requested language manager is not currently supported (feel free to open an issue at https://github.com/JasonYao/pydotfiles/issues/new)"
        )