feat: initial commit
This commit is contained in:
57
misc/script/install.sh
Normal file
57
misc/script/install.sh
Normal file
@ -0,0 +1,57 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
PROJECT_NAME="FAQd"
|
||||
PROJECT_RELEASES_URL="https://forge.cadoles.com/Cadoles/emissary/releases"
|
||||
PROJECT_DESTDIR="."
|
||||
PROJECT_FILE_BASENAME="faqd"
|
||||
PROJECT_PLATFORM_SUFFIX="$(uname -s)_$(uname -m)"
|
||||
|
||||
function main {
|
||||
test -z "${PROJECT_VERSION}" && PROJECT_VERSION="$(curl -sfL -o /dev/null -w %{url_effective} "${PROJECT_RELEASES_URL}/latest" |
|
||||
rev |
|
||||
cut -f1 -d'/'|
|
||||
rev)"
|
||||
|
||||
# Check version variable initialization
|
||||
test -z "${PROJECT_VERSION}" && {
|
||||
echo "Unable to get ${PROJECT_NAME} version !" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
test -z "${PROJECT_TMPDIR}" && PROJECT_TMPDIR="$(mktemp -d)"
|
||||
export TAR_FILE="${PROJECT_TMPDIR}/${PROJECT_FILE_BASENAME}_${PROJECT_VERSION}_${PROJECT_PLATFORM_SUFFIX}.tar.gz"
|
||||
|
||||
(
|
||||
cd "${PROJECT_TMPDIR}"
|
||||
|
||||
# Download project
|
||||
echo "Downloading ${PROJECT_NAME} ${PROJECT_VERSION}..."
|
||||
curl -sfLo "${TAR_FILE}" \
|
||||
"${PROJECT_RELEASES_URL}/download/${PROJECT_VERSION}/${PROJECT_FILE_BASENAME}_${PROJECT_VERSION}_${PROJECT_PLATFORM_SUFFIX}.tar.gz" ||
|
||||
( echo "Error while downloading ${PROJECT_NAME} !" >&2 && exit 1 )
|
||||
|
||||
# Download checksums
|
||||
curl -sfLo "checksums.txt" "${PROJECT_RELEASES_URL}/download/${PROJECT_VERSION}/checksums.txt"
|
||||
|
||||
echo "Verifying checksum..."
|
||||
check_sum ||
|
||||
( echo "Error while verifying checksums !" >&2 && exit 1 )
|
||||
)
|
||||
|
||||
# Extracting archive files
|
||||
tar -xf "${TAR_FILE}" -C "${PROJECT_TMPDIR}"
|
||||
|
||||
# Moving downloaded binary to destination directory
|
||||
mv -f "${PROJECT_TMPDIR}/${PROJECT_FILE_BASENAME}" "${PROJECT_DESTDIR}/"
|
||||
|
||||
echo "You can now use '${PROJECT_DESTDIR}/${PROJECT_FILE_BASENAME}', enjoy !"
|
||||
}
|
||||
|
||||
function check_sum {
|
||||
set -o pipefail
|
||||
cat checksums.txt | grep ${PROJECT_FILE_BASENAME}_*_${PROJECT_PLATFORM_SUFFIX}.tar.gz | sha256sum -c
|
||||
set +o pipefail
|
||||
}
|
||||
|
||||
main $@
|
36
misc/script/test_install.sh
Normal file
36
misc/script/test_install.sh
Normal file
@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]:-$0}"; )" &> /dev/null && pwd 2> /dev/null; )";
|
||||
|
||||
function test_install_ubuntu_20.04 {
|
||||
cat <<EOF | run_in_docker ubuntu:20.04
|
||||
apt update && apt install -y curl
|
||||
bash /src/misc/script/install.sh
|
||||
test -f ./faqd
|
||||
EOF
|
||||
}
|
||||
|
||||
function test_install_alpine_3.16 {
|
||||
cat <<EOF | run_in_docker alpine:3.16
|
||||
apk add curl
|
||||
sh /src/misc/script/install.sh
|
||||
test -f ./faqd
|
||||
EOF
|
||||
}
|
||||
|
||||
function test_install_fedora_36 {
|
||||
cat <<EOF | run_in_docker fedora:36
|
||||
yum install -y util-linux
|
||||
bash /src/misc/script/install.sh
|
||||
test -f ./faqd
|
||||
EOF
|
||||
}
|
||||
|
||||
function run_in_docker {
|
||||
local image=$1
|
||||
cat | docker run \
|
||||
-v "${SCRIPT_DIR}/../..:/src" \
|
||||
--workdir /tmp \
|
||||
-i --rm \
|
||||
${image}
|
||||
}
|
Reference in New Issue
Block a user