github.com/noxiouz/docker@v0.7.3-0.20160629055221-3d231c78e8c5/hack/make/tgz (about) 1 #!/bin/bash 2 3 CROSS="$DEST/../cross" 4 5 set -e 6 7 if [ ! -d "$CROSS/linux/amd64" ]; then 8 echo >&2 'error: binary and cross must be run before tgz' 9 false 10 fi 11 12 ( 13 for d in "$CROSS/"*/*; do 14 export GOARCH="$(basename "$d")" 15 export GOOS="$(basename "$(dirname "$d")")" 16 17 source "${MAKEDIR}/.binary-setup" 18 19 BINARY_NAME="${DOCKER_CLIENT_BINARY_NAME}-$VERSION" 20 DAEMON_BINARY_NAME="${DOCKER_DAEMON_BINARY_NAME}-$VERSION" 21 BINARY_EXTENSION="$(export GOOS && binary_extension)" 22 if [ "$GOOS" = 'windows' ]; then 23 # if windows use a zip, not tgz 24 BUNDLE_EXTENSION=".zip" 25 IS_TAR="false" 26 else 27 BUNDLE_EXTENSION=".tgz" 28 IS_TAR="true" 29 fi 30 BINARY_FULLNAME="$BINARY_NAME$BINARY_EXTENSION" 31 DAEMON_BINARY_FULLNAME="$DAEMON_BINARY_NAME$BINARY_EXTENSION" 32 mkdir -p "$DEST/$GOOS/$GOARCH" 33 TGZ="$DEST/$GOOS/$GOARCH/$BINARY_NAME$BUNDLE_EXTENSION" 34 35 # The staging directory for the files in the tgz 36 BUILD_PATH="$DEST/build" 37 38 # The directory that is at the root of the tar file 39 TAR_BASE_DIRECTORY="docker" 40 41 # $DEST/build/docker 42 TAR_PATH="$BUILD_PATH/$TAR_BASE_DIRECTORY" 43 44 # Copy the correct docker binary 45 mkdir -p $TAR_PATH 46 cp -L "$d/$BINARY_FULLNAME" "$TAR_PATH/${DOCKER_CLIENT_BINARY_NAME}${BINARY_EXTENSION}" 47 if [ -f "$d/$DAEMON_BINARY_FULLNAME" ]; then 48 cp -L "$d/$DAEMON_BINARY_FULLNAME" "$TAR_PATH/${DOCKER_DAEMON_BINARY_NAME}${BINARY_EXTENSION}" 49 fi 50 51 # copy over all the containerd binaries 52 copy_containerd $TAR_PATH 53 54 if [ "$IS_TAR" == "true" ]; then 55 echo "Creating tgz from $BUILD_PATH and naming it $TGZ" 56 tar --numeric-owner --owner 0 -C "$BUILD_PATH" -czf "$TGZ" $TAR_BASE_DIRECTORY 57 else 58 # ZIP needs to full absolute dir path, not the absolute path 59 ZIP=`pwd`"/$TGZ" 60 # keep track of where we are, for later. 61 pushd . 62 # go into the BUILD_PATH since zip does not have a -C equivalent. 63 cd $BUILD_PATH 64 echo "Creating zip from $BUILD_PATH and naming it $ZIP" 65 zip -q -r $ZIP $TAR_BASE_DIRECTORY 66 # go back to where we started 67 popd 68 fi 69 70 hash_files "$TGZ" 71 72 # cleanup after ourselves 73 rm -rf "$BUILD_PATH" 74 75 echo "Created tgz: $TGZ" 76 done 77 )