#!/bin/sh -ex cur=$(pwd) tmp=$(mktemp -d) release=$1 [ -n "$release" ] git clone . $tmp/gocheese-$release cd $tmp/gocheese-$release git checkout v$release mod_name=$(sed -n 's/^module //p' go.mod) crypto_mod_path=$(sed -n 's#^require \(golang.org/x/crypto\) \(.*\)$#\1@\2#p' go.mod) mkdir -p src/$mod_name mv *.go go.mod go.sum src/$mod_name mods=" golang.org/x/crypto golang.org/x/net " for mod in $mods; do mod_path=$(sed -n "s# // indirect## ; s#^ \($mod\) \(.*\)\$#\1@\2#p" src/$mod_name/go.mod) [ -n "$mod_path" ] mkdir -p src/$mod ( cd $GOPATH/pkg/mod/$mod_path ; tar cf - --exclude ".git*" * ) | tar xfC - src/$mod chmod -R +w src/$mod done for mod in golang.org/x/sys; do mod_path=$(sed -n "s#^\($mod\) \(.*\) h1:.*\$#\1@\2#p" src/$mod_name/go.sum | sed /go.mod/d | sort -n -r | sed -n 1p) [ -n "$mod_path" ] mkdir -p src/$mod ( cd $GOPATH/pkg/mod/$mod_path ; tar cf - --exclude ".git*" * ) | tar xfC - src/$mod chmod -R +w src/$mod done cat > $tmp/includes < download.texi <