Closed mmcloughlin closed 4 years ago
$ go list -f '{{range .Deps}}{{printf "%s\n" .}}{{end}}' ./cmd/addchain/
bytes
container/heap
context
encoding/binary
errors
flag
fmt
github.com/google/subcommands
github.com/mmcloughlin/ec3/addchain
github.com/mmcloughlin/ec3/addchain/acc
github.com/mmcloughlin/ec3/addchain/acc/ast
github.com/mmcloughlin/ec3/addchain/acc/ir
github.com/mmcloughlin/ec3/addchain/acc/parse
github.com/mmcloughlin/ec3/addchain/acc/parse/internal/parser
github.com/mmcloughlin/ec3/addchain/acc/pass
github.com/mmcloughlin/ec3/addchain/acc/printer
github.com/mmcloughlin/ec3/internal/bigint
github.com/mmcloughlin/ec3/internal/bigints
github.com/mmcloughlin/ec3/internal/bigvector
github.com/mmcloughlin/ec3/internal/calc
github.com/mmcloughlin/ec3/internal/cli
github.com/mmcloughlin/ec3/internal/container/heap
github.com/mmcloughlin/ec3/internal/errutil
github.com/mmcloughlin/ec3/internal/ints
github.com/mmcloughlin/ec3/internal/print
golang.org/x/xerrors
golang.org/x/xerrors/internal
internal/bytealg
internal/cpu
internal/fmtsort
internal/oserror
internal/poll
internal/race
internal/reflectlite
internal/syscall/unix
internal/testlog
io
io/ioutil
log
math
math/big
math/bits
math/rand
os
path
path/filepath
reflect
runtime
runtime/internal/atomic
runtime/internal/math
runtime/internal/sys
sort
strconv
strings
sync
sync/atomic
syscall
text/tabwriter
time
unicode
unicode/utf8
unsafe
This monstrosity will do it:
addchain
addchain
files to top levelec3
#!/bin/bash -ex
workdir=$(mktemp -d)
cd ${workdir}
#-----------------------------------------------------------------------------
git clone git@github.com:mmcloughlin/ec3.git
cd ec3
repodir=${workdir}/ec3
#-----------------------------------------------------------------------------
git remote remove origin
git filter-branch \
--tree-filter '
#-----------------------------------------------------------------------------
# todo:
# include the LICENSE
# - commit filter
# clean up dot files
find . -type f -name ".*" -delete
rm -rf .circleci .github
# move everything to a temp dir
tmp=$(mktemp -d)
mv * ${tmp}
# copy back in the ones we want
for dir in prime cmd/addchain polynomial internal/{assert,bigint,bigints,bigvector,calc,cli,container/heap,errutil,ints,print,test}; do
src="${tmp}/${dir}"
mkdir -p ${dir}
if [ -d ${src} ]; then
mv $src/* ${dir};
fi
done
# move addchain to top level
if [ -d ${tmp}/addchain ]; then
mv ${tmp}/addchain/* .
fi
# replace import paths
find . -name "*.go" | xargs sed -i.bak "s|github.com/mmcloughlin/ec3/addchain|github.com/mmcloughlin/addchain|g"
find . -name "*.go" | xargs sed -i.bak "s|github.com/mmcloughlin/ec3|github.com/mmcloughlin/addchain|g"
find . -name "*.bak" -delete
# include LICENSE
mv ${tmp}/LICENSE .
# clean up
rm -rf ${tmp}
#-----------------------------------------------------------------------------
' \
--msg-filter '
sed -E "s|#([0-9]+)|mmcloughlin/ec3#\1|g" &&
echo &&
echo "Extracted-from: mmcloughlin/ec3@${GIT_COMMIT}"
' \
--prune-empty \
-- \
master
#-----------------------------------------------------------------------------
# init module
go mod init github.com/mmcloughlin/addchain
go build ./...
go test -short ./...
git add go.mod go.sum
git commit -m 'init go module'
#-----------------------------------------------------------------------------
tree ${repodir}
echo "workdir: ${workdir}"
echo "repo: ${repodir}"
Extracted as https://github.com/mmcloughlin/addchain
Some people have expressed interest in the addition chains results, so it may be worth breaking this out as a separate project.