#!/bin/bash # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # Quit on failure set -e PKG_VERSION="" SRC_TARBALL="" VENDOR_VERSION="1" OUT_FOLDER="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # parameters: # # --srcTarball : src tarball file # this file contains the 'initial' source code of the component # and should be replaced with the new/modified src code # --outFolder : folder where to copy the new tarball(s) # --pkgVersion : package version # --vendorVersion : vendor version # PARAMS="" while (( "$#" )); do case "$1" in --srcTarball) if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then SRC_TARBALL=$2 shift 2 else echo "Error: Argument for $1 is missing" >&2 exit 1 fi ;; --outFolder) if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then OUT_FOLDER=$2 shift 2 else echo "Error: Argument for $1 is missing" >&2 exit 1 fi ;; --pkgVersion) if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then PKG_VERSION=$2 shift 2 else echo "Error: Argument for $1 is missing" >&2 exit 1 fi ;; --vendorVersion) if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then VENDOR_VERSION=$2 shift 2 else echo "Error: Argument for $1 is missing" >&2 exit 1 fi ;; -*|--*=) # unsupported flags echo "Error: Unsupported flag $1" >&2 exit 1 ;; *) # preserve positional arguments PARAMS="$PARAMS $1" shift ;; esac done echo "--srcTarball -> $SRC_TARBALL" echo "--outFolder -> $OUT_FOLDER" echo "--pkgVersion -> $PKG_VERSION" echo "--vendorVersion -> $VENDOR_VERSION" if [ -z "$PKG_VERSION" ]; then echo "--pkgVersion parameter cannot be empty" exit 1 fi echo "-- create temp folder" tmpdir=$(mktemp -d) function cleanup { echo "+++ cleanup -> remove $tmpdir" rm -rf $tmpdir } trap cleanup EXIT TARBALL_FOLDER="$tmpdir/tarballFolder" mkdir -p $TARBALL_FOLDER cp $SRC_TARBALL $tmpdir pushd $tmpdir > /dev/null PKG_NAME="docker-cli" NAME_VER="$PKG_NAME-$PKG_VERSION" VENDOR_TARBALL="$OUT_FOLDER/$NAME_VER-govendor-v$VENDOR_VERSION.tar.gz" echo "Unpacking source tarball..." tar -xf $SRC_TARBALL echo "Vendor go modules..." cd cli-"$PKG_VERSION" cp man/tools.go . ./scripts/vendor init go mod edit -modfile=vendor.mod -require=github.com/cpuguy83/go-md2man/v2@v2.0.3 #go mod tidy -modfile=vendor.mod #go mod vendor -modfile=vendor.mod ./scripts/vendor update echo "" echo "=========================" echo "Tar vendored tarball" tar --sort=name \ --mtime="2021-04-26 00:00Z" \ --owner=0 --group=0 --numeric-owner \ --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime \ -czf "$VENDOR_TARBALL" vendor.mod vendor.sum vendor popd > /dev/null echo "$PKG_NAME vendored modules are available at $VENDOR_TARBALL"