def is_local_cloned(cls): # pragma: no cover """ Checks if the local version is was downloaded per :code:`git clone`. """ if not helpers.Directory(".git").exists(): # The git directory does not exist. # We return False, the current version is not the cloned version. return False # We list the list of file which can be found only in a cloned version. list_of_file = [ ".coveragerc", ".coveralls.yml", ".gitignore", ".PyFunceble_production.yaml", ".travis.yml", "CODE_OF_CONDUCT.rst", "CONTRIBUTING.rst", "dir_structure_production.json", "MANIFEST.in", "README.rst", "requirements.txt", "setup.py", "version.yaml", ] # We list the list of directory which can be found only in a cloned # version. list_of_dir = ["docs", "PyFunceble", "tests"] if not all([helpers.File(x).exists() for x in list_of_file]): return False # All required files exist in the current directory. if not all([helpers.Directory(x).exists() for x in list_of_dir]): return False # All required directories exist in the current directory. # We return True, the current version is a cloned version. return True
and helpers.EnvironmentVariable("GITLAB_CI").exists() ): # pragma: no cover # We handle the case that we are under GitLab CI/CD. CONFIG_DIRECTORY = helpers.Directory.get_current(with_end_sep=True) else: # pragma: no cover # We handle all other case and distributions specific cases. if abstracts.Platform.is_unix(): # We are under a Linux distribution. # We set the default configuration location path. config_dir_path = ( path.expanduser("~" + directory_separator + ".config") + directory_separator ) if helpers.Directory(config_dir_path).exists(): # Everything went right: # * `~/.config` exists. # We set our configuration location path as the directory we are working with. CONFIG_DIRECTORY = config_dir_path elif helpers.Directory(path.expanduser("~")).exists(): # Something went wrong: # * `~/.config` does not exists. # * `~` exists. # We set `~/` as the directory we are working with. # # Note: The `.` at the end is because we want to hide the directory we are # going to create. CONFIG_DIRECTORY = ( path.expanduser("~") + directory_separator + "." ) # pylint: disable=line-too-long