uci-docker-caddy/src/init/opt/caddy/caddy.lib

65 lines
2.0 KiB
Bash

#!/bin/bash
caddy_add_packages () {
local bin; local repos; local pkgs; local pkg
[[ ! -f $1 ]] && echo "cannot find file $1 of packages, nothing to add" && return 0
bin=${2:-$CADDY_BIN}
bin=${bin:-$(command -v caddy)}
[[ ! $bin ]] && echo no caddy binary found && return 1
pkgs=$(sed '/^[[:space:]]*#[^!]/d; /#$/d' $1)
echo caddy pkgs to be added:
echo $pkgs
if ! $bin add-package $pkgs >/dev/null 2>&1; then
echo Error: Aborting further package installs and reverting to last good binary
return 2
else
echo packages added successfully
$bin list-modules | grep -E -A15 "Standard modules:"
fi
}
caddy_checksum () {
echo "verifying checksum of $2"
source /opt/scripts/github.lib
local download=$(github_asset caddyserver caddy $1 caddy_$(echo ${1})_checksums.txt)
echo checksum file to download: $download
wget -q -O /tmp/caddy_checksum $download
# cat /tmp/caddy_checksum
local sha=$(grep $2 /tmp/caddy_checksum | cut -d " " -f1)
# echo $sha
# sha512sum $3
# must have TWO spaces in echo command!
echo "$sha $3" | sha512sum -c >/dev/null 2>&1;
ret=$?
rm -r /tmp/caddy_checksum
return $ret
}
caddy_install_bin () {
source /opt/scripts/github.lib
arch=$(/opt/scripts/getarch.sh)
ver=${CADDY_VER:-$(github_latest caddyserver caddy | sed 's/^v//')}
caddytar="caddy_${ver}_linux_${arch}.tar.gz"
download=$(github_asset caddyserver caddy $ver $caddytar)
# echo "github_asset caddyserver caddy $ver $caddytar"
echo caddy version: $ver
echo caddy tarball: $caddytar
echo getting tarball from: $download
wget -q -O /tmp/caddy.tar.gz $download
if caddy_checksum $ver $caddytar /tmp/caddy.tar.gz; then
echo download tarball verified
tar x -z -f /tmp/caddy.tar.gz -C $CADDY_HOME/bin caddy
rm -f /tmp/caddy.tar.gz
chmod +x $CADDY_BIN
setcap cap_net_bind_service=+ep $CADDY_BIN
chmod +x $CADDY_BIN
$CADDY_BIN version
if ! caddy_add_packages $CADDY_CONF/caddy.pkgs; then
return 4
fi
fi
}