diff options
Diffstat (limited to 'llvm_tools/nightly_revert_checker.py')
-rwxr-xr-x | llvm_tools/nightly_revert_checker.py | 59 |
1 files changed, 10 insertions, 49 deletions
diff --git a/llvm_tools/nightly_revert_checker.py b/llvm_tools/nightly_revert_checker.py index 88aac9b7..6090e614 100755 --- a/llvm_tools/nightly_revert_checker.py +++ b/llvm_tools/nightly_revert_checker.py @@ -11,10 +11,10 @@ fires off an email. All LLVM SHAs to monitor are autodetected. import argparse import dataclasses -import io import json import logging import os +from pathlib import Path import pprint import subprocess import sys @@ -131,57 +131,18 @@ def _find_interesting_android_shas( return result -def _parse_llvm_ebuild_for_shas( - ebuild_file: io.TextIOWrapper, -) -> List[Tuple[str, str]]: - def parse_ebuild_assignment(line: str) -> str: - no_comments = line.split("#")[0] - no_assign = no_comments.split("=", 1)[1].strip() - assert no_assign.startswith('"') and no_assign.endswith('"'), no_assign - return no_assign[1:-1] - - llvm_hash, llvm_next_hash = None, None - for line in ebuild_file: - if line.startswith("LLVM_HASH="): - llvm_hash = parse_ebuild_assignment(line) - if llvm_next_hash: - break - if line.startswith("LLVM_NEXT_HASH"): - llvm_next_hash = parse_ebuild_assignment(line) - if llvm_hash: - break - if not llvm_next_hash or not llvm_hash: - raise ValueError( - "Failed to detect SHAs for llvm/llvm_next. Got: " - "llvm=%s; llvm_next=%s" % (llvm_hash, llvm_next_hash) - ) - - results: List[Tuple[str, str]] = [("llvm", llvm_hash)] - if llvm_next_hash != llvm_hash: - results.append(("llvm-next", llvm_next_hash)) - return results - - def _find_interesting_chromeos_shas( chromeos_base: str, ) -> List[Tuple[str, str]]: - llvm_dir = os.path.join( - chromeos_base, "src/third_party/chromiumos-overlay/sys-devel/llvm" - ) - candidate_ebuilds = [ - os.path.join(llvm_dir, x) - for x in os.listdir(llvm_dir) - if "_pre" in x and not os.path.islink(os.path.join(llvm_dir, x)) - ] - - if len(candidate_ebuilds) != 1: - raise ValueError( - "Expected exactly one llvm ebuild candidate; got %s" - % pprint.pformat(candidate_ebuilds) - ) - - with open(candidate_ebuilds[0], encoding="utf-8") as f: - return _parse_llvm_ebuild_for_shas(f) + chromeos_path = Path(chromeos_base) + llvm_hash = get_llvm_hash.LLVMHash() + + current_llvm = llvm_hash.GetCrOSCurrentLLVMHash(chromeos_path) + results = [("llvm", current_llvm)] + next_llvm = llvm_hash.GetCrOSLLVMNextHash() + if current_llvm != next_llvm: + results.append(("llvm-next", next_llvm)) + return results _Email = NamedTuple( |