diff options
| author | 2020-02-08 13:15:39 +0000 | |
|---|---|---|
| committer | 2020-02-08 13:21:29 +0000 | |
| commit | 4e9df2c552b9ea6212e223e38c8f5d49be3e6d42 (patch) | |
| tree | 983f01126785e7166e27d2c59e02ad5b8841219d /src/utils/__init__.py | |
| parent | spec[2] is a string, not an array of strings (diff) | |
| signature | ||
handle git being in a detached head state when getting current commit
Diffstat (limited to 'src/utils/__init__.py')
| -rw-r--r-- | src/utils/__init__.py | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/utils/__init__.py b/src/utils/__init__.py index 7180766b..55129137 100644 --- a/src/utils/__init__.py +++ b/src/utils/__init__.py @@ -127,17 +127,20 @@ def deadline_process(func: typing.Callable[[], DeadlineProcessReturnType], else: raise out # type: ignore -def git_commit(bot_directory: str) -> typing.Optional[str]: +def git_commit(bot_directory: str + ) -> typing.Tuple[typing.Optional[str], typing.Optional[str]]: git_dir = os.path.join(bot_directory, ".git") head_filepath = os.path.join(git_dir, "HEAD") if os.path.isfile(head_filepath): - ref = None with open(head_filepath, "r") as head_file: - ref = head_file.readline().split(" ", 1)[1].strip() - branch = ref.rsplit("/", 1)[1] + ref_line = head_file.readline().strip() + if not ref_line.startswith("ref: "): + return None, ref_line + else: + ref = ref_line.split(" ", 1)[1] + branch = ref.rsplit("/", 1)[1] - ref_filepath = os.path.join(git_dir, ref) - if os.path.isfile(ref_filepath): - with open(ref_filepath, "r") as ref_file: - return ref_file.readline().strip()[:8] - return None + ref_filepath = os.path.join(git_dir, ref) + with open(ref_filepath, "r") as ref_file: + return branch, ref_file.readline().strip()[:8] + return None, None |
