#!/bin/sh

set -eu

# shellcheck disable=SC2154
# shellcheck source=./lib/environment.sh
. "${debci_base_dir}/lib/environment.sh"
# shellcheck source=./backends/incus-lxc/environment.sh
. "${debci_base_dir}/backends/incus-lxc/environment.sh"

# fail right away if incus is not installed
if ! which incus >/dev/null; then
  echo "E: incus is not installed"
  exit 1
fi

base_dir="$(dirname "$0")"

metadata_tarball="${debci_incus_tmpdir}/metadata.tar"
"${base_dir}"/scripts/create-incus-metadata "${metadata_tarball}"

debci-generate-apt-sources \
    --source \
    --dbgsym \
    -- \
    "$debci_suite" > "${debci_incus_tmpdir}/sources.list"

rootfs_tarball="${debci_incus_tmpdir}/${debci_suite}.tar"
# shellcheck disable=SC2016
mmdebstrap \
   --arch="${debci_arch}" \
   --variant=minbase \
   --include=systemd-sysv,systemd-resolved,dbus \
   --include=auto-apt-proxy \
   --skip=output/dev \
   --customize-hook='chroot $1 systemctl enable systemd-networkd' \
   --customize-hook='chroot $1 systemctl enable systemd-resolved' \
   --customize-hook="upload ${base_dir}/files/eth0.network /etc/systemd/network/eth0.network" \
   --customize-hook='mkdir $1/etc/systemd/system-generators' \
   --customize-hook="upload ${base_dir}/files/lxc.generator /etc/systemd/system-generators/lxc" \
   --customize-hook='chmod +x $1/etc/systemd/system-generators/lxc' \
   --customize-hook='rm -f $1/etc/apt/sources.list' \
   --customize-hook="upload ${debci_incus_tmpdir}/sources.list /etc/apt/sources.list" \
   "${debci_suite}" "${rootfs_tarball}" "${debci_mirror}"

"${incus_or_lxd}" image delete "${debci_incus_image}" 2>/dev/null || true

"${incus_or_lxd}" image import "${metadata_tarball}" "${rootfs_tarball}" \
  --alias "${debci_incus_image}"
