#!/usr/bin/env bash

set -euo pipefail

SLUG="woocommerce-gateway-eway"
TRUNK="$BITBUCKET_CLONE_DIR/trunk"
OUTPUT="${1:-$BITBUCKET_CLONE_DIR/$SLUG.zip}"
case "$OUTPUT" in /*) ;; *) OUTPUT="$PWD/$OUTPUT" ;; esac

for required in dist/js/gutenberg-blocks.js dist/js/frontend/eway-secure-fields.js vendor/autoload.php vendor/vendor-prefixed; do
	if [ ! -e "$TRUNK/$required" ]; then
		echo "Missing trunk/$required" >&2
		exit 1
	fi
done

STAGING="$(mktemp -d)"
trap 'rm -rf "$STAGING"' EXIT
ln -s "$TRUNK" "$STAGING/$SLUG"

EXCLUDES=( "$SLUG/.svnignore" "*.DS_Store" )
while IFS= read -r entry || [ -n "$entry" ]; do
	entry="${entry%$'\r'}"
	[ -z "$entry" ] && continue
	EXCLUDES+=( "$SLUG/$entry" "$SLUG/$entry/*" )
done < "$TRUNK/.svnignore"

rm -f "$OUTPUT"
( cd "$STAGING" && zip -rqX "$OUTPUT" "$SLUG" -x "${EXCLUDES[@]}" )

VERSION="$(sed -n "s/.*define( 'WOOCOMMERCE_GATEWAY_EWAY_VERSION', '\([^']*\)'.*/\1/p" "$TRUNK/$SLUG.php")"

echo "Created $OUTPUT"
echo "  Version: ${VERSION:-unknown} (${BITBUCKET_COMMIT:0:8})"
echo "  Files:   $(unzip -Z1 "$OUTPUT" | grep -vc '/$')"
echo "  Size:    $(du -h "$OUTPUT" | cut -f1)"
