summaryrefslogtreecommitdiff
path: root/hack/find-godeps.sh
diff options
context:
space:
mode:
authorW. Trevor King <wking@tremily.us>2018-05-15 16:10:51 -0700
committerAtomic Bot <atomic-devel@projectatomic.io>2018-05-16 15:42:34 +0000
commit5b2627dd7738cd92a356ca30c5a47be7a6abaf29 (patch)
tree24ad3a1855a755c9c947516239755ccdb0aa6b19 /hack/find-godeps.sh
parent9fcc475d033d7f1718e9490e8944de7f31a2bbab (diff)
downloadpodman-5b2627dd7738cd92a356ca30c5a47be7a6abaf29.tar.gz
podman-5b2627dd7738cd92a356ca30c5a47be7a6abaf29.tar.bz2
podman-5b2627dd7738cd92a356ca30c5a47be7a6abaf29.zip
Makefile: Drop find-godeps.sh for podman target
We inherited this from a031b83a (Initial checkin from CRI-O repo, 2017-11-01), but: * The output is actually going into bin/podman, so Make will rebuild this target every time. You'll never be able to save compilation because the target is newer than all the prerequisites. * Make expands prerequisites immediately when loading a Makefile [1], and on my wimpy Chromebook SD Card, this is *slow*: $ time hack/find-godeps.sh ~/.local/lib/go/src/github.com/projectatomic/libpod cmd/podman github.com/projectatomic/libpod ... real 0m56.225s user 0m44.918s sys 0m21.918s * Go is pretty good at this on its own, so having make call 'go build' every time will almost certainly be faster than us trying to mimic this in a shell script. And by punting to Go in the recipe, Make invocations that do not need the podman target (e.g. 'make help') can skip the dependency lookup entirely. [1]: https://www.gnu.org/software/make/manual/html_node/Reading-Makefiles.html#Rule-Definition Signed-off-by: W. Trevor King <wking@tremily.us> Closes: #776 Approved by: rhatdan
Diffstat (limited to 'hack/find-godeps.sh')
-rwxr-xr-xhack/find-godeps.sh41
1 files changed, 0 insertions, 41 deletions
diff --git a/hack/find-godeps.sh b/hack/find-godeps.sh
deleted file mode 100755
index 4ce932542..000000000
--- a/hack/find-godeps.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-#
-# $1 - base path of the source tree
-# $2 - subpath under $1 to find *.go dependencies for
-# $3 - package name (eg, github.com/organization/project)
-
-set -o errexit
-set -o nounset
-set -o pipefail
-
-# might be called from makefile before basepath is set up; just return
-# empty deps. The make target will then ensure that GOPATH is set up
-# correctly, and go build will build everything the first time around
-# anyway. Next time we get here everything will be fine.
-if [ ! -d "$1/$2" ]; then
- exit 0
-fi
-
-function find-deps() {
- local basepath=$1
- local srcdir=$2
- local pkgname=$3
- local deps=
-
- # gather imports from cri-o
- pkgs=$(cd ${basepath}/${srcdir} && go list -f "{{.Imports}}" . | tr ' ' '\n' | tr -d '[]' | grep -v "/vendor/" | grep ${pkgname} | sed -e "s|${pkgname}/||g")
-
- # add each Go import's sources to the deps list,
- # and recursively get that imports's imports too
- for dep in ${pkgs}; do
- deps+="$(ls ${basepath}/${dep}/*.go | sed -e "s|${basepath}/||g") "
- # add deps of this package too
- deps+="$(find-deps ${basepath} ${dep} ${pkgname}) "
- done
-
- echo "${deps}" | sort | uniq
-}
-
-# add Go sources from the current package at the end
-echo "$(find-deps "$1" "$2" "$3" | xargs) $(cd $1 && ls $2/*.go | xargs)"
-