scripts/proxmox/build.network.file

49 lines
1.5 KiB
Plaintext
Raw Normal View History

#!/bin/sh
# Purpose: {{{
# Proxmox only reads /etc/network/interfaces from a while
# See: https://forum.proxmox.com/threads/anyway-to-support-interfaces-d.34739/
# So any bridge,… in the subdirectory /etc/network/interfaces.d won't be
# available from webgui to manage KVM/LXC's network device.
# }}}
# This script will try to fix this waiting for a Proxmox's fix. {{{
# Check if /etc/network/interfaces.d contains file(s)
# Create a temp interfaces file
# Add some basic/header informations to the temp file
# Cat the content of interfaces.d files to the temp file
# Replace default interfaces file with the temp one
# }}}
interfaces_dir="/etc/network/interfaces.d"
interfaces_temp="/etc/network/interfaces.temp.script"
# Test if interfaces.d is empty
if [ -z "$(ls -A ${interfaces_dir})" ]; then
exit 0
fi
# Create temp file
rm -f -- "${interfaces_temp}"
touch -- "${interfaces_temp}"
# Header informations
printf '%b' "# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
" >> "${interfaces_temp}"
# Loopback informations if not present in interfaces.d
grep -q -R "iface lo" "${interfaces_dir}" || printf '%b' "
# The loopback network interface
auto lo
iface lo inet loopback
" >> "${interfaces_temp}"
# Cat the content of interfaces.d to temp file (POSIX way)
find "${interfaces_dir}" -type f -exec cat {} >> "${interfaces_temp}" \;
# Define it a new interfaces file
mv -- "${interfaces_temp}" /etc/network/interfaces
exit 0