Files
eden/tools/cpm/package/vars.sh
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

159 lines
2.8 KiB
Bash
Raw Normal View History

2025-12-31 17:16:46 +01:00
#!/bin/sh -e
# SPDX-FileCopyrightText: Copyright 2026 crueter
2025-12-31 17:16:46 +01:00
# SPDX-License-Identifier: LGPL-3.0-or-later
# shellcheck disable=SC1091
value() {
echo "$JSON" | jq -r ".$1"
}
2026-06-26 02:22:04 +02:00
if [ -z "$JSON" ]; then
[ -n "$PACKAGE" ] || { echo "Package was not specified" && exit 0; }
2025-12-31 17:16:46 +01:00
2026-06-26 02:22:04 +02:00
# shellcheck disable=SC2153
JSON=$(jq -r ".\"$PACKAGE\" | select( . != null )" cpmfile.json)
2025-12-31 17:16:46 +01:00
2026-06-26 02:22:04 +02:00
if [ -z "$JSON" ]; then
echo "!! No cpmfile definition for $PACKAGE" >&2
exit 1
fi
fi
2025-12-31 17:16:46 +01:00
# unset stuff
export PACKAGE_NAME="null"
export REPO="null"
export CI="null"
export GIT_HOST="null"
export EXT="null"
export NAME="null"
export DISABLED="null"
export TAG="null"
export ARTIFACT="null"
export SHA="null"
export VERSION="null"
2026-06-26 02:22:04 +02:00
export MIN_VERSION="null"
2025-12-31 17:16:46 +01:00
export DOWNLOAD="null"
export URL="null"
export KEY="null"
export HASH="null"
export ORIGINAL_TAG="null"
export HAS_REPLACE="null"
export VERSION_REPLACE="null"
########
# Meta #
########
REPO=$(value "repo")
CI=$(value "ci")
PACKAGE_NAME=$(value "package")
[ "$PACKAGE_NAME" != null ] || PACKAGE_NAME="$PACKAGE"
2025-12-31 17:16:46 +01:00
GIT_HOST=$(value "git_host")
[ "$GIT_HOST" != null ] || GIT_HOST=github.com
2025-12-31 17:16:46 +01:00
2026-06-26 02:22:04 +02:00
# used for cache key
LOWER_PACKAGE=$(echo "$PACKAGE_NAME" | tr '[:upper:]' '[:lower:]')
2025-12-31 17:16:46 +01:00
export PACKAGE_NAME
2026-06-26 02:22:04 +02:00
export LOWER_PACKAGE
2025-12-31 17:16:46 +01:00
export REPO
export CI
export GIT_HOST
######################
# CI Package Parsing #
######################
2026-06-26 02:22:04 +02:00
MIN_VERSION=$(value "min_version")
2025-12-31 17:16:46 +01:00
VERSION=$(value "version")
2026-06-26 02:22:04 +02:00
export VERSION
export MIN_VERSION
2025-12-31 17:16:46 +01:00
if [ "$CI" = "true" ]; then
EXT=$(value "extension")
[ "$EXT" != null ] || EXT="tar.zst"
2025-12-31 17:16:46 +01:00
NAME=$(value "name")
DISABLED=$(echo "$JSON" | jq -j '.disabled_platforms')
[ "$NAME" != null ] || NAME="$PACKAGE_NAME"
2025-12-31 17:16:46 +01:00
export EXT
export NAME
export DISABLED
return 0
fi
##############
# Versioning #
##############
TAG=$(value "tag")
ARTIFACT=$(value "artifact")
SHA=$(value "sha")
if echo "$TAG" | grep -e "%VERSION%" >/dev/null; then
HAS_REPLACE=true
else
HAS_REPLACE=false
fi
2025-12-31 17:16:46 +01:00
ORIGINAL_TAG="$TAG"
2026-06-26 02:22:04 +02:00
TAG=$(echo "$TAG" | sed "s/%VERSION%/$VERSION/g")
ARTIFACT=$(echo "$ARTIFACT" | sed "s/%VERSION%/$VERSION/g")
2025-12-31 17:16:46 +01:00
ARTIFACT=$(echo "$ARTIFACT" | sed "s/%TAG%/$TAG/g")
export TAG
export ARTIFACT
export SHA
export VERSION
export ORIGINAL_TAG
export HAS_REPLACE
###############
# URL Parsing #
###############
URL=$(value "url")
2026-06-26 02:22:04 +02:00
. "$SCRIPTS"/util/url.sh
2025-12-31 17:16:46 +01:00
export DOWNLOAD
###############
# Key Parsing #
###############
2026-06-26 02:22:04 +02:00
if [ "$SHA" != null ]; then
KEY=$(echo "$SHA" | cut -c1-4)
elif [ "$VERSION" != null ]; then
KEY="$VERSION"
elif [ "$TAG" != null ]; then
KEY="$TAG"
else
echo "!! No valid key could be determined for $PACKAGE_NAME. Must define one of: sha, tag, version"
exit 1
fi
2025-12-31 17:16:46 +01:00
export KEY
################
# Hash Parsing #
################
HASH=$(value "hash")
if [ "$HASH" = null ]; then
2026-06-26 02:22:04 +02:00
echo "!! No hash defined for $PACKAGE_NAME" >&2
2025-12-31 17:16:46 +01:00
fi
export HASH
export JSON