Skip to content

Commit

Permalink
Merge pull request #95 from qowoz/fod
Browse files Browse the repository at this point in the history
add vendorHash
  • Loading branch information
Mic92 committed Sep 21, 2022
2 parents 9cbc543 + e4de7e6 commit 7a6f8b3
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 22 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ designed to work with nixpkgs but also other package sets.
- pypi
- rubygems.org
- update buildRustPackage's cargoHash/cargoSha256
- update buildGoModule's vendorSha256/modSha256
- update buildGoModule's vendorHash/vendorSha256
- build and run the resulting package (see `--build`,
`--run` or `--shell`
- commit updated files (see `--commit` flag)
Expand Down
8 changes: 4 additions & 4 deletions nix_update/eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ class Package:
url: Optional[str]
rev: str
hash: Optional[str]
mod_sha256: Optional[str]
vendor_hash: Optional[str]
vendor_sha256: Optional[str]
cargo_sha256: Optional[str]
cargo_deps: Optional[str]
tests: List[str]

raw_version_position: InitVar[Optional[Dict[str, Any]]]
Expand Down Expand Up @@ -67,9 +67,9 @@ def eval_expression(import_path: str, attr: str) -> str:
url = pkg.src.url or null;
rev = pkg.src.rev or null;
hash = pkg.src.outputHash or null;
mod_sha256 = pkg.modSha256 or null;
vendor_hash = pkg.vendorHash or null;
vendor_sha256 = pkg.vendorSha256 or null;
cargo_sha256 = pkg.cargoHash or pkg.cargoSha256 or null;
cargo_deps = pkg.cargoHash or pkg.cargoSha256 or null;
tests = builtins.attrNames (pkg.passthru.tests or {{}});
}})"""

Expand Down
28 changes: 11 additions & 17 deletions nix_update/update.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,19 +91,13 @@ def update_src_hash(opts: Options, filename: str, current_hash: str) -> None:
replace_hash(filename, current_hash, target_hash)


def update_mod256_hash(opts: Options, filename: str, current_hash: str) -> None:
expr = f"{{ sha256 }}: (import {opts.import_path} {disable_check_meta(opts)}).{opts.attribute}.go-modules.overrideAttrs (_: {{ modSha256 = sha256; }})"
def update_go_modules_hash(opts: Options, filename: str, current_hash: str) -> None:
expr = f"{{ sha256 }}: (import {opts.import_path} {disable_check_meta(opts)}).{opts.attribute}.go-modules.overrideAttrs (_: {{ inherit sha256; }})"
target_hash = nix_prefetch([expr])
replace_hash(filename, current_hash, target_hash)


def update_go_vendor_hash(opts: Options, filename: str, current_hash: str) -> None:
expr = f"{{ sha256 }}: (import {opts.import_path} {disable_check_meta(opts)}).{opts.attribute}.go-modules.overrideAttrs (_: {{ vendorSha256 = sha256; }})"
target_hash = nix_prefetch([expr])
replace_hash(filename, current_hash, target_hash)


def update_cargo_sha256_hash(opts: Options, filename: str, current_hash: str) -> None:
def update_cargo_deps_hash(opts: Options, filename: str, current_hash: str) -> None:
expr = f"{{ sha256 }}: (import {opts.import_path} {disable_check_meta(opts)}).{opts.attribute}.cargoDeps.overrideAttrs (_: {{ inherit sha256; }})"
target_hash = nix_prefetch([expr])
replace_hash(filename, current_hash, target_hash)
Expand Down Expand Up @@ -150,13 +144,13 @@ def update(opts: Options) -> Package:

# if no package.hash was provided we just update the other hashes unconditionally
if update_hash or not package.hash:
if package.vendor_sha256:
update_go_vendor_hash(opts, package.filename, package.vendor_sha256)
# legacy go module checksums
elif package.mod_sha256:
update_mod256_hash(opts, package.filename, package.mod_sha256)

if package.cargo_sha256:
update_cargo_sha256_hash(opts, package.filename, package.cargo_sha256)
if package.vendor_hash and package.vendor_sha256 == "_unset":
update_go_modules_hash(opts, package.filename, package.vendor_hash)

if package.vendor_sha256 and package.vendor_hash == "_unset":
update_go_modules_hash(opts, package.filename, package.vendor_sha256)

if package.cargo_deps:
update_cargo_deps_hash(opts, package.filename, package.cargo_deps)

return package

0 comments on commit 7a6f8b3

Please sign in to comment.