#!/bin/bash
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-10-11; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu
set -Ceuo pipefail

printf "\e[95m++++ ++++ ++++ ++++ ++++ ++++ ++ 🧪 '%s' starting ... \e[0m\n" "${0}"

# shellcheck disable=SC2155
declare -r VAR_DATE="$(date +%F)"

mv /etc/network/interfaces /root/.ciss/cdlb/backup/interfaces.chroot
rm -f /etc/network/interfaces

cat << EOF >| /etc/network/interfaces
# SPDX-Version: 3.0
# SPDX-CreationInfo: ${VAR_DATE}; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.live.builder
# SPDX-Security-Contact: security@coresecret.eu

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

EOF

cat << 'EOF' >> /etc/network/interfaces
### The loopback network interface
auto lo
iface lo inet loopback

### Fully dynamic interface
auto dynamic
iface dynamic inet dhcp
    pre-up \
      IFACE=$(ip -o link show \
        | awk -F': ' '{print $2}' \
        | grep -m1 -v lo) && \
      echo "Using interface $IFACE as dynamic" && \
      ip link set dev "$IFACE" up && \
      ip link set dev "$IFACE" name dynamic

    post-down \
      ip link set dev dynamic name "$IFACE" && \
      echo "Restored interface name $IFACE"

source /etc/network/interfaces.d/*

# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
EOF

chmod 0644 /etc/network/interfaces

printf "\e[92m++++ ++++ ++++ ++++ ++++ ++++ ++ ✅ '%s' applied successfully. \e[0m\n" "${0}"

exit 0
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
