#!/bin/bash

set -eu

if [ $# -eq 1 ]; then
    tag="${1:-}"
else
    echo "usage: $(basename $0) tag" >&2
    exit 64
fi

bindir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
rootdir="$( cd $bindir/.. && pwd )"

. $bindir/_docker.sh

workdir="$rootdir/target/release"
mkdir -p "$workdir"

shorttag="$tag"
if [ "${tag:0:1}" == "v" ]; then
  shorttag="${tag:1}"
fi

# create the cli-bin container in order to extract the binaries
id=$(docker create "$(docker_repo cli-bin):$tag")

for os in darwin linux windows ; do
  ext="$os"
  if [ "$os" == "windows" ]; then
    ext="windows.exe"
  fi
  filepath="$workdir/linkerd2-cli-$shorttag-$ext"
  docker cp "$id:/out/linkerd-$os" "$filepath"
  openssl dgst -sha256 "$filepath" | awk '{print $2}' > "$filepath.sha256"
  echo "$filepath"
done

# cleanup the cli-bin container when finished
docker rm "$id" > /dev/null
