#!/bin/bash set -e # directory of this script SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" echo "Script directory: $SCRIPT_DIR" # Check for GITEA_TOKEN_DEPLOY or GITEA_TOKEN TOKEN="${GITEA_TOKEN_DEPLOY:-${GITEA_TOKEN}}" [ -z "$TOKEN" ] && { echo "Neither GITEA_TOKEN_DEPLOY nor GITEA_TOKEN environment variable set!" >&2; exit 1; } OLD_PWD="$PWD" cd "$SCRIPT_DIR" || exit 1 TEMP_DIR=$(mktemp -d) trap 'rm -rf "$TEMP_DIR" && cd "$OLD_PWD"' EXIT ARCH=$(uname -m) TAG=$("$SCRIPT_DIR/output/dropshell.${ARCH}" --version) [ -z "$TAG" ] && echo "Failed to get version from dropshell.${ARCH}" >&2 && exit 1 echo "Publishing dropshell version $TAG" function die() { echo "$@" >&2 exit 1 } # Function to find file in specified locations find_file() { local filename="$1" shift # remove filename from args local locations=("$@") # grab the rest of the args as locations for loc in "${locations[@]}"; do if [ -f "$loc/$filename" ]; then echo "$loc/$filename" return 0 # Found the file, return success fi done echo "" # Return empty string if not found return 1 } curl -L -s -o "${TEMP_DIR}/sos" "https://getbin.xyz/sos" || die "Failed to download sos" chmod +x "${TEMP_DIR}/sos" # Upload binaries and install.sh for FILE in dropshell.x86_64 dropshell.aarch64 dropshell-install.sh dropshell-server-autosetup.sh; do # Pass the locations directly to the find_file function filetoupload=$(find_file "$FILE" "output" "../" ".") [ -z "$filetoupload" ] && die "File $FILE not found in expected locations!" "${TEMP_DIR}/sos" upload getbin.xyz "$filetoupload" "$FILE:latest" "$FILE:TAG" done echo "Published dropshell $TAG to getbin.xyz"