Initial Backupper Unraid plugin
This commit is contained in:
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT=$(cd "$(dirname "$0")/.." && pwd)
|
||||
VERSION=${VERSION:-0.1.0}
|
||||
RESTIC_VERSION=0.19.0
|
||||
RESTIC_SHA256=13176fe6d89d4357947a2cd107218ab2873a5f9d8e1ac2d4cd1c8e07e6839c21
|
||||
BUILD="$ROOT/build"
|
||||
STAGE="$BUILD/package"
|
||||
DIST="$ROOT/dist"
|
||||
|
||||
command -v go >/dev/null || { echo "Go 1.23 or newer is required" >&2; exit 1; }
|
||||
command -v curl >/dev/null || { echo "curl is required" >&2; exit 1; }
|
||||
command -v bzip2 >/dev/null || { echo "bzip2 is required" >&2; exit 1; }
|
||||
|
||||
rm -rf "$BUILD" "$DIST"
|
||||
mkdir -p "$STAGE/usr/local/sbin" "$STAGE/usr/local/libexec/backupper" "$STAGE/usr/local/emhttp/plugins/backupper/assets" "$STAGE/etc/rc.d" "$STAGE/install" "$DIST"
|
||||
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags "-s -w -X main.version=$VERSION" -o "$STAGE/usr/local/sbin/backupperd" ./cmd/backupperd
|
||||
|
||||
RESTIC_ARCHIVE="$BUILD/restic.bz2"
|
||||
curl --fail --location --silent --show-error "https://github.com/restic/restic/releases/download/v${RESTIC_VERSION}/restic_${RESTIC_VERSION}_linux_amd64.bz2" -o "$RESTIC_ARCHIVE"
|
||||
read -r ACTUAL_RESTIC_SHA256 _ < <(sha256sum "$RESTIC_ARCHIVE")
|
||||
if [ "$ACTUAL_RESTIC_SHA256" != "$RESTIC_SHA256" ]; then
|
||||
echo "Restic checksum mismatch" >&2
|
||||
exit 1
|
||||
fi
|
||||
bzip2 -dc "$RESTIC_ARCHIVE" > "$STAGE/usr/local/libexec/backupper/restic"
|
||||
chmod 0755 "$STAGE/usr/local/libexec/backupper/restic" "$STAGE/usr/local/sbin/backupperd"
|
||||
|
||||
cp "$ROOT/webgui/Backupper.page" "$STAGE/usr/local/emhttp/plugins/backupper/"
|
||||
cp "$ROOT/webgui/api.php" "$STAGE/usr/local/emhttp/plugins/backupper/"
|
||||
cp "$ROOT/webgui/assets/"* "$STAGE/usr/local/emhttp/plugins/backupper/assets/"
|
||||
cp "$ROOT/plugin/rc.backupper" "$STAGE/etc/rc.d/rc.backupper"
|
||||
cp "$ROOT/plugin/doinst.sh" "$ROOT/plugin/slack-desc" "$STAGE/install/"
|
||||
chmod 0755 "$STAGE/etc/rc.d/rc.backupper" "$STAGE/install/doinst.sh"
|
||||
|
||||
(cd "$STAGE" && tar --owner=0 --group=0 -cJf "$DIST/backupper-${VERSION}-x86_64-1.txz" .)
|
||||
(cd "$DIST" && sha256sum "backupper-${VERSION}-x86_64-1.txz" > "backupper-${VERSION}-x86_64-1.txz.sha256")
|
||||
PACKAGE_SHA256=$(sha256sum "$DIST/backupper-${VERSION}-x86_64-1.txz" | awk '{print $1}')
|
||||
sed "s/REPLACE_DURING_RELEASE/$PACKAGE_SHA256/" "$ROOT/plugin/backupper.plg" > "$DIST/backupper.plg"
|
||||
echo "Built $DIST/backupper-${VERSION}-x86_64-1.txz"
|
||||
Reference in New Issue
Block a user