2018-01-20 13:03:41 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
# Generate go dependencies, for make. Uses `go list".
|
|
|
|
# Usage: makedepend.sh [-t] output package path [extra]
|
|
|
|
|
2018-02-18 21:35:15 +00:00
|
|
|
PATH_FORMAT='{{ .ImportPath }}{{"\n"}}{{join .Deps "\n"}}'
|
2018-01-20 13:03:41 +00:00
|
|
|
FILE_FORMAT='{{ range $file := .GoFiles }} {{$.Dir}}/{{$file}}{{"\n"}}{{end}}'
|
|
|
|
|
|
|
|
if [ "$1" = "-t" ]
|
|
|
|
then
|
|
|
|
PATH_FORMAT='{{ if .TestGoFiles }} {{.ImportPath}} {{end}}'
|
|
|
|
shift
|
|
|
|
fi
|
|
|
|
|
|
|
|
out=$1
|
|
|
|
pkg=$2
|
|
|
|
path=$3
|
|
|
|
extra=$4
|
|
|
|
|
|
|
|
# check for mandatory parameters
|
|
|
|
test -n "$out$pkg$path" || exit 1
|
|
|
|
|
|
|
|
echo "$out: $extra\\"
|
|
|
|
go list -f "$PATH_FORMAT" $path |
|
|
|
|
grep "$pkg" |
|
|
|
|
xargs go list -f "$FILE_FORMAT" |
|
|
|
|
sed -e "s|^ ${GOPATH}| \$(GOPATH)|;s/$/ \\\\/"
|
|
|
|
echo " #"
|