#!/bin/sh
set -e

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
ROOT="$(dirname "$SCRIPT_DIR")"
SING_BOX="$ROOT/works/sing-box"
REV_FILE="$ROOT/works/rev"

# defaults
REPO_URL="git@git.inker.bot:arknights/sing-box.git"
if [[ $CI_JOB_TOKEN != "" ]]; then
  REPO_URL=$(echo $REPO_URL | sed -i "s/git/gitlab-ci-token:$CI_JOB_TOKEN/")
UPSTREAM_BRANCH="main"

CONFIG="$ROOT/works/config"
if [ -f "$CONFIG" ]; then
    . "$CONFIG"
fi

if [ -d "$SING_BOX/.git" ]; then
    echo "Updating sing-box..."
    git -C "$SING_BOX" fetch --all
    if [ -n "$UPSTREAM_BRANCH" ]; then
        git -C "$SING_BOX" checkout "$UPSTREAM_BRANCH"
    fi
    git -C "$SING_BOX" pull
else
    echo "Cloning sing-box..."
    if [ -n "$UPSTREAM_BRANCH" ]; then
        git clone -b "$UPSTREAM_BRANCH" "$REPO_URL" "$SING_BOX"
    else
        git clone "$REPO_URL" "$SING_BOX"
    fi
fi

REV="$(git -C "$SING_BOX" rev-parse HEAD)"
echo "$REV" > "$REV_FILE"

echo "Done. Version: $(git -C "$SING_BOX" describe --tags --always 2>/dev/null || echo "$REV")"
echo "Stored rev: $REV"
