docker-spcomp/build_from_url.sh
2025-05-21 00:26:35 -05:00

65 lines
No EOL
1.7 KiB
Bash
Executable file

#!/bin/bash
# https://sm.alliedmods.net/smdrop/1.12/sourcemod-latest-linux
set -e
if [[ "$#" -lt 1 ]]; then
echo "Syntax: ./build_from_url.sh <SM version> latest/####"
exit 1
fi
BASE_IMAGE=debian # alpine missing some dependencies rn
SM_VERSION=$1
BUILD_ID=$2
if [[ -z "$BUILD_ID" ]]; then
BUILD_ID="latest"
fi
# # Parse arguments
# while [[ "$#" -gt 0 ]]; do
# case $1 in
# --sm-version)
# SM_VERSION="$2"
# shift 2
# ;;
# --git-version)
# GIT_VERSION="$2"
# shift 2
# ;;
# *)
# echo "Unknown parameter passed: $1"
# exit 1
# ;;
# esac
# done
# Check if values were provided
# if [[ -z "$SM_VERSION" ]]; then
# echo "Error: --sm-version not provided"
# exit 1
# fi
# if [[ -z "$BUILD_VERSION" ]]; then
# echo "Error: --git-version not provided"
# exit 1
# fi
FILENAME=sourcemod-$SM_VERSION.0-git$BUILD_ID-linux.tar.gz
if [[ "$BUILD_ID" = "latest" ]]; then
echo Resolving latest version
FILENAME=$(curl https://sm.alliedmods.net/smdrop/$SM_VERSION/sourcemod-latest-linux)
BUILD_ID=$(echo "$FILENAME" | sed -n 's/.*-git\([0-9]\+\)-.*/\1/p')
echo Latest build id: $BUILD_ID
if [[ -z "$BUILD_ID" ]]; then
echo "Failed to get latest build id"
exit 1
fi
fi
URL=https://sm.alliedmods.net/smdrop/$SM_VERSION/$FILENAME
echo Downloading $URL to tars/$FILENAME
mkdir tars -p
if [[ -f "tars/$FILENAME" ]]; then
echo "Skipping, already downloaded"
else
wget $URL -O tars/$FILENAME
fi
DOCKER_TAG=$BASE_IMAGE-$SM_VERSION-git$BUILD_ID
docker build -t spcomp:$DOCKER_TAG . --build-arg TAR_FILE=$FILENAME -f $BASE_IMAGE/Dockerfile
echo Built image spcomp:$DOCKER_TAG