#!/bin/bash -x
set -euo pipefail

ARCHIVE=$1
WORK_DIR=$2

ARCHIVE="${ARCHIVE#"${ARCHIVE%%[![:space:]]*}"}"
ARCHIVE="${ARCHIVE%"${ARCHIVE##*[![:space:]]}"}"
WORK_DIR="${WORK_DIR#"${WORK_DIR%%[![:space:]]*}"}"
WORK_DIR="${WORK_DIR%"${WORK_DIR##*[![:space:]]}"}"

if [[ -z "$ARCHIVE" || -z "$WORK_DIR" ]]; then
    echo "Usage: prepare-build-fs <archive> <work-dir>"
    exit 1
fi

if [[ "$WORK_DIR" == "/" || "$WORK_DIR" == "/home" || "$WORK_DIR" == "/usr" || "$WORK_DIR" == "/etc" || "$WORK_DIR" == "/var" || "$WORK_DIR" == "/tmp" || "$WORK_DIR" == "/boot" || "$WORK_DIR" == "/dev" || "$WORK_DIR" == "/proc" || "$WORK_DIR" == "/sys" || "$WORK_DIR" == "/run" ]]; then
    echo "Error: refusing to operate on dangerous path: $WORK_DIR"
    exit 1
fi

rm -rf "$WORK_DIR"/*
tar -xf "$ARCHIVE" -C "$WORK_DIR"
