INNER CODE UNIT · Python
sha256
sun-jiao/flut-renamer · packaging/release_metadata.py:13
def sha256(path):
with path.open('rb') as stream:
return hashlib.file_digest(stream, 'sha256').hexdigest()
def generate(assets, repository, tag):
if not re.fullmatch(r'[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+', repository):
raise ValueError('Expected an owner/repository GitHub repository')
_, version = parse_tag(tag)
homepage = f'https://github.com/{repository}'
base = f'{homepage}/releases/download/{quote(tag, safe="")}'
# Read all required inputs before writing any manifests.
dmg_hash = sha256(assets / 'flut-renamer.dmg')
exe_hash = sha256(assets / 'flut-renamer.exe')
(assets / 'flut-renamer.rb').write_text(f'''cask "flut-renamer" do
version "{version}"
sha256 "{dmg_hash}"