--- /dev/null
+package main
+
+import (
+ "log"
+ "os"
+
+ "golang.org/x/mod/sumdb/dirhash"
+)
+
+func main() {
+ hsh, err := dirhash.HashZip(os.Args[1], dirhash.DefaultHash)
+ if err != nil {
+ log.Fatal(err)
+ }
+ os.Stdout.WriteString(hsh + "\n")
+}
cd $dst
[[ -s $version.zip ]] && exit
-prepro=$0:h:a/prepro
+root=$0:h:a
+zipcreate=$root/zip-create
+ziphash=$root/zip-hash
zmodload -F zsh/datetime b:strftime
git -C $vcspath cat-file -p $version | while read line ; do
[[ $line =~ ^object ]] && hsh=${${=line}[-1]}
[[ -n $sec ]]
strftime -s when %Y-%m-%dT%H:%M:%SZ $sec
-$prepro -vcs $vcspath -mod $modname -version $version > $version.zip
+$zipcreate -vcs $vcspath -mod $modname -version $version > $version.zip
+$ziphash $version.zip > $version.ziphash
unzip -p $version.zip ${modname}@${version}/go.mod > $version.mod
printf '{"Version":"%s","Time":"%s","Origin":{"VCS":"git","URL":"%s","Ref":"refs/tags/%s","Hash":"%s"}}' \
$version $when $vcsurl $version $hsh > $version.info
-touch -d $when $version.info $version.mod $version.zip
+touch -d $when $version.info $version.mod $version.zip $version.ziphash