set -euo pipefail
echo "[check-version] extracting crate metadata"
meta="$(cargo metadata --no-deps --format-version 1)"
name="$(echo "$meta" | jq -r '.packages[0].name')"
version="$(echo "$meta" | jq -r '.packages[0].version')"
echo "[check-version] crate: ${name}"
echo "[check-version] version: ${version}"
echo "[check-version] checking if version already exists on crates.io"
http_code=$(curl -s -o /dev/null -w "%{http_code}" -A "lookas-ci/1.0 (github.com/rccyx/lookas)" "https://crates.io/api/v1/crates/${name}/${version}")
if [ "$http_code" -eq 200 ]; then
echo "[check-version] version already exists on crates.io"
echo "[check-version] publish? no"
echo "publish=no" >> "$GITHUB_OUTPUT"
elif [ "$http_code" -eq 404 ]; then
echo "[check-version] version does not exist on crates.io"
echo "[check-version] publish? yes"
echo "publish=yes" >> "$GITHUB_OUTPUT"
else
echo "[check-version] unexpected response from crates.io: $http_code"
exit 1
fi