33 lines
1018 B
Bash
33 lines
1018 B
Bash
#! /usr/bin/env bash
|
|
# Args: <config-file> <arch> <build-args> [<repo>]
|
|
|
|
# Env checks
|
|
if [ "$(whoami)" != "root" ]
|
|
then
|
|
(>&2 echo Programm has to run as root.)
|
|
exit 1
|
|
fi
|
|
if [ -z "$SUDO_USER" ]
|
|
then
|
|
(>&2 echo Programm has to be run as sudo. SUDO_USER not set.)
|
|
exit 1
|
|
fi
|
|
|
|
CONFIG_DIR="$(dirname "$0")" &&
|
|
BUILD_DIR="$(sudo -u "$SUDO_USER" -H mktemp -d)" &&
|
|
CONFIG_FILE="$(realpath "$1")" &&
|
|
(>2 echo BUILD DIR: "$BUILD_DIR") &&
|
|
sudo -u "$SUDO_USER" -H mkdir -p ".flatpak-builder/ccache" &&
|
|
sudo -u "$SUDO_USER" -H mkdir -p ".flatpak-builder/downloads" &&
|
|
sudo -u "$SUDO_USER" -H mkdir -p "$BUILD_DIR/.flatpak-builder/ccache" &&
|
|
sudo -u "$SUDO_USER" -H ln -s "$(realpath ".flatpak-builder/downloads")" "$BUILD_DIR/.flatpak-builder/downloads" &&
|
|
mount --bind ".flatpak-builder/ccache" "$BUILD_DIR/.flatpak-builder/ccache" &&
|
|
cd "$BUILD_DIR" &&
|
|
sudo -u "$SUDO_USER" -H "$CONFIG_DIR/build.sh" "$CONFIG_FILE" "$2" "$3" "$4"
|
|
|
|
RESULT=$!
|
|
umount "$BUILD_DIR/.flatpak-builder/ccache" &&
|
|
cd &&
|
|
rm -rf "$BUILD_DIR"
|
|
exit $RESULT
|