65 lines
No EOL
1.7 KiB
Bash
Executable file
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 |