tools/build_in_tmp.sh

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