57 lines
1.5 KiB
Bash
Executable File
57 lines
1.5 KiB
Bash
Executable File
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|
ARCH=$(uname -m)
|
|
PROJECT="$(basename "${SCRIPT_DIR}")"
|
|
OUTPUT="${SCRIPT_DIR}/output"
|
|
|
|
|
|
function heading() {
|
|
# print a heading with a line of dashe
|
|
echo "--------------------------------"
|
|
echo "$1"
|
|
echo "--------------------------------"
|
|
}
|
|
|
|
#--------------------------------------------------------------------------------
|
|
heading "Publishing ${PROJECT}"
|
|
|
|
function die() {
|
|
heading "error: $1"
|
|
exit 1
|
|
}
|
|
|
|
[[ -n $SOS_WRITE_TOKEN ]] || die "SOS_WRITE_TOKEN not specified"
|
|
|
|
# clear output dir
|
|
rm -rf "${OUTPUT}"
|
|
mkdir -p "${OUTPUT}"
|
|
|
|
|
|
#--------------------------------------------------------------------------------
|
|
heading "Building ${PROJECT}"
|
|
|
|
# build release version
|
|
export CMAKE_BUILD_TYPE="Release"
|
|
"${SCRIPT_DIR}/build.sh"
|
|
[ -f "${OUTPUT}/${PROJECT}" ] || die "Build failed."
|
|
|
|
# install getpkg
|
|
GETPKG_PATH="${HOME}/.local/bin/getpkg/getpkg"
|
|
if [ ! -f "${GETPKG_PATH}" ]; then
|
|
heading "Installing getpkg"
|
|
curl https://getbin.xyz/getpkg-install | bash
|
|
if [ ! -f "${GETPKG_PATH}" ]; then
|
|
die "getpkg failed to install to ${GETPKG_PATH}"
|
|
fi
|
|
fi
|
|
|
|
#--------------------------------------------------------------------------------
|
|
heading "Publishing ${PROJECT} as tool to ${PROJECT}:${ARCH} (on getpkg.xyz)"
|
|
|
|
TOOLDIR="${OUTPUT}/tool"
|
|
mkdir "${TOOLDIR}"
|
|
cp "${OUTPUT}/${PROJECT}" "${TOOLDIR}/${PROJECT}"
|
|
"${GETPKG_PATH}" server set-token getpkg.xyz "${SOS_WRITE_TOKEN}"
|
|
"${GETPKG_PATH}" publish "${PROJECT}:${ARCH}" "${TOOLDIR}"
|