#!/bin/sh

IMAGE='shadowsocks-rust:latest'
CUR_DIR=$( cd $( dirname $0 ) && pwd )

docker build -t "${IMAGE}" "$CUR_DIR"

SRC_PATH="/home/rust/src"
CARGO_TARGET_DIR="${SRC_PATH}/build/target"
LOCAL_USER=$( id -u "$USER" ):$( id -g "$USER" )

docker run \
    -e CARGO_TARGET_DIR="${CARGO_TARGET_DIR}" \
    -v "${CUR_DIR}"/..:"$SRC_PATH" \
    -v "${CUR_DIR}/target/musl-builder/cargo-cache":/home/rust/.cargo/registry \
    "${IMAGE}" \
    /bin/bash -c \
    "sudo mkdir -p $CARGO_TARGET_DIR \
        && sudo chown -R rust:rust $CARGO_TARGET_DIR \
        && cargo build --release \
        && sudo chown -R $LOCAL_USER $CARGO_TARGET_DIR"

TARGET_NAME="x86_64-unknown-linux-musl"
TARGET_DIR="$CUR_DIR/target/$TARGET_NAME/release/"
cd "$TARGET_DIR"

VERSION=$1
if [[ -z "$VERSION" ]]; then
    VERSION="latest"
fi

## Disable OS X ACL file
export COPYFILE_DISABLE=1

tar -czf "${CUR_DIR}/shadowsocks-${VERSION}-release.${TARGET_NAME}.tar.gz" \
    "sslocal" \
    "ssserver" \
    "ssurl"
tar -cJf "${CUR_DIR}/shadowsocks-${VERSION}-release.${TARGET_NAME}.tar.xz" \
    "sslocal" \
    "ssserver" \
    "ssurl"
