diff --git a/articles/gomodsri.md b/articles/gomodsri.md index 874822d1a164001ef303151ecfa1520bf088f765..8dda2d8cb7679b0fa0603377cbcbca2593f3f5eb 100644 --- a/articles/gomodsri.md +++ b/articles/gomodsri.md @@ -7,13 +7,13 @@ +++ ### The problem -When building a Go module with `nix`, generally you would use `buildGoModule`. One thing it shares with other builders in the nix ecosystem is a `vendorHash` property (or similar name). +When building a Go module with `nix`, generally one uses `buildGoModule`. One thing this shares with other builders in the nix ecosystem is `vendorHash` (or similar name). Although there _have_ been various workarounds, there's usually no getting around some variation of building, noting the "expected" new hash, and replacing the old hash with the correct one before building works for real. ### The solution -Now, I am admittedly borrowing this idea from [tailscale](https://tailscale.com). I simply wrapped it in a (nu)shell command for easier generic usage. +Now, admittedly I am borrowing this idea from [tailscale](https://tailscale.com). I simply wrapped it in a (nu)shell command for easier usage more generically. The original idea combines the [nardump](https://github.com/tailscale/tailscale/tree/ad33e47270509345469af795aed65177df88904e/cmd/nardump) command with the [vendoring](https://pkg.go.dev/cmd/go#hdr-Make_vendored_copy_of_dependencies) ability of Go modules to predict the `vendorHash`. Put together, it can look something like the following: @@ -35,7 +35,7 @@ } ``` --- -I've modified it to use across other projects as the following nushell function: +I've modified it locally to use across other projects as the following nushell function: ```nu def gomodsri [] { @@ -47,4 +47,4 @@ rm -rf $tmp echo 'nixpkgs.lib.fileContents ./go.mod.sri' } ``` -The echo at the end is because I always forget the invocation otherwise... +Yes, the echo at the end is because I always forget the invocation otherwise...