mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 03:08:55 -05:00
Previously, when downloader was loaded, the RepoManager would spawn a task to load available repos. If one repo failed loading for some reason, the function would raise and the remaining repos would never be loaded, however downloader would still appear to load correctly. This change handles exceptions better during repo loading, but also, if an unhandled exception is raised, downloader will fail to load as it should. Also included, as requested in #1968, is the --recurse-submodules flag in cloning/pulling repositories. This change resolves #1950. Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
114 lines
1.8 KiB
Python
114 lines
1.8 KiB
Python
__all__ = [
|
|
"DownloaderException",
|
|
"GitException",
|
|
"InvalidRepoName",
|
|
"ExistingGitRepo",
|
|
"MissingGitRepo",
|
|
"CloningError",
|
|
"CurrentHashError",
|
|
"HardResetError",
|
|
"UpdateError",
|
|
"GitDiffError",
|
|
"NoRemoteURL",
|
|
"PipError",
|
|
]
|
|
|
|
|
|
class DownloaderException(Exception):
|
|
"""
|
|
Base class for Downloader exceptions.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
class GitException(DownloaderException):
|
|
"""
|
|
Generic class for git exceptions.
|
|
"""
|
|
|
|
|
|
class InvalidRepoName(DownloaderException):
|
|
"""
|
|
Throw when a repo name is invalid. Check
|
|
the message for a more detailed reason.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
class ExistingGitRepo(DownloaderException):
|
|
"""
|
|
Thrown when trying to clone into a folder where a
|
|
git repo already exists.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
class MissingGitRepo(DownloaderException):
|
|
"""
|
|
Thrown when a git repo is expected to exist but
|
|
does not.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
class CloningError(GitException):
|
|
"""
|
|
Thrown when git clone returns a non zero exit code.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
class CurrentHashError(GitException):
|
|
"""
|
|
Thrown when git returns a non zero exit code attempting
|
|
to determine the current commit hash.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
class HardResetError(GitException):
|
|
"""
|
|
Thrown when there is an issue trying to execute a hard reset
|
|
(usually prior to a repo update).
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
class UpdateError(GitException):
|
|
"""
|
|
Thrown when git pull returns a non zero error code.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
class GitDiffError(GitException):
|
|
"""
|
|
Thrown when a git diff fails.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
class NoRemoteURL(GitException):
|
|
"""
|
|
Thrown when no remote URL exists for a repo.
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
class PipError(DownloaderException):
|
|
"""
|
|
Thrown when pip returns a non-zero return code.
|
|
"""
|
|
|
|
pass
|