linux_lqx, linux_zen: avoid unnecessary prefetch

If the version hasn't changed, there is no need to run nix_prefetch_git
(which is quite expensive for the large kernel repo).

+27 -2
+27 -2
pkgs/os-specific/linux/kernel/update-zen.py
··· 78 print(result, end='') 79 80 81 if __name__ == "__main__": 82 if len(sys.argv) == 1: 83 panic("Update variant expected") ··· 93 zen_version = zen_match.group(1) 94 zen_suffix = zen_match.group(2) 95 break 96 - zen_hash = nix_prefetch_git('https://github.com/zen-kernel/zen-kernel.git', zen_tag) 97 - update_file('zen-kernels.nix', variant, zen_version, zen_suffix, zen_hash)
··· 78 print(result, end='') 79 80 81 + def read_file(relpath, variant): 82 + file_path = os.path.join(DIR, relpath) 83 + re_version = re.compile(fr'^\s*version = "(.+)"; #{variant}') 84 + re_suffix = re.compile(fr'^\s*suffix = "(.+)"; #{variant}') 85 + version = None 86 + suffix = None 87 + with fileinput.FileInput(file_path, mode='r') as f: 88 + for line in f: 89 + version_match = re_version.match(line) 90 + if version_match: 91 + version = version_match.group(1) 92 + continue 93 + 94 + suffix_match = re_suffix.match(line) 95 + if suffix_match: 96 + suffix = suffix_match.group(1) 97 + continue 98 + 99 + if version and suffix: 100 + break 101 + return version, suffix 102 + 103 + 104 if __name__ == "__main__": 105 if len(sys.argv) == 1: 106 panic("Update variant expected") ··· 116 zen_version = zen_match.group(1) 117 zen_suffix = zen_match.group(2) 118 break 119 + old_version, old_suffix = read_file('zen-kernels.nix', variant) 120 + if old_version != zen_version or old_suffix != zen_suffix: 121 + zen_hash = nix_prefetch_git('https://github.com/zen-kernel/zen-kernel.git', zen_tag) 122 + update_file('zen-kernels.nix', variant, zen_version, zen_suffix, zen_hash)