lol

gclient2nix: distinguish between revs and tags

authored by

Yureka and committed by
Yureka
cb848436 527595ee

+7 -5
+7 -5
pkgs/by-name/gc/gclient2nix/gclient2nix.py
··· 125 125 self.fetcher = "fetchgit" 126 126 self.args = { 127 127 "url": url, 128 - "rev": rev, 128 + "rev" if re.match(r"[0-9a-f]{40}", rev) else "tag": rev, 129 129 } 130 130 131 131 ··· 136 136 self.args = { 137 137 "owner": owner, 138 138 "repo": repo, 139 - "rev": rev, 139 + "rev" if re.match(r"[0-9a-f]{40}", rev) else "tag": rev, 140 140 } 141 141 142 142 def get_file(self, filepath: str) -> str: 143 + rev_or_tag = self.args['rev'] if 'rev' in self.args else f"refs/tags/{self.args['tag']}" 143 144 return ( 144 145 urlopen( 145 - f"https://raw.githubusercontent.com/{self.args['owner']}/{self.args['repo']}/{self.args['rev']}/{filepath}" 146 + f"https://raw.githubusercontent.com/{self.args['owner']}/{self.args['repo']}/{rev_or_tag}/{filepath}" 146 147 ) 147 148 .read() 148 149 .decode("utf-8") ··· 155 156 self.fetcher = "fetchFromGitiles" 156 157 self.args = { 157 158 "url": url, 158 - "rev": rev, 159 + "rev" if re.match(r"[0-9a-f]{40}", rev) else "tag": rev, 159 160 } 160 161 161 162 # Quirk: Chromium source code exceeds the Hydra output limit ··· 172 173 self.args["postFetch"] += "rm -r $out/media/test/data; " 173 174 174 175 def get_file(self, filepath: str) -> str: 176 + rev_or_tag = self.args['rev'] if 'rev' in self.args else f"refs/tags/{self.args['tag']}" 175 177 return base64.b64decode( 176 178 urlopen( 177 - f"{self.args['url']}/+/{self.args['rev']}/{filepath}?format=TEXT" 179 + f"{self.args['url']}/+/{rev_or_tag}/{filepath}?format=TEXT" 178 180 ).read() 179 181 ).decode("utf-8") 180 182