diff options
Diffstat (limited to 'debian/templates/image.bug/include-network')
-rw-r--r-- | debian/templates/image.bug/include-network | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/debian/templates/image.bug/include-network b/debian/templates/image.bug/include-network new file mode 100644 index 0000000000..89d9cb9de4 --- /dev/null +++ b/debian/templates/image.bug/include-network @@ -0,0 +1,69 @@ +_list_etc_network_interfaces() { + local file + + for file in /etc/network/interfaces /etc/network/interfaces.d/*; do + if ! [ -f "$file" ]; then + continue + fi + case "${file##*/}" in + *[^-a-zA-Z0-9_]*) + continue + ;; + esac + echo "$file" + done +} + +_add_etc_network_interfaces() { + local file + test -f /etc/network/interfaces || return 0 + + echo '** Network interface configuration:' >&3 + + while read file; do + if ! [ -r "$file" ]; then + echo "*** $file: unreadable" >&3 + echo >&3 + continue + fi + echo "*** $file:" >&3 + # Hide passwords/keys + awk '$1 ~ /key|pass|^wpa-(anonymous|identity|phase|pin|private|psk)/ { gsub(".", "*", $2); } + $1 == "ethtool-wol" { gsub(".", "*", $3); } + !/^[[:space:]]*\#/ { print; } + ' <"$file" >&3 + echo >&3 + done < <(_list_etc_network_interfaces) +} + +add_network() { + yesno "Include network configuration and status from this computer? " nop + test $REPLY = yep || return 0 + + _add_etc_network_interfaces + echo '** Network status:' >&3 + if command -v ip >/dev/null; then + echo '*** IP interfaces and addresses:' >&3 + ip address show >&3 + echo >&3 + fi + echo '*** Device statistics:' >&3 + cat /proc/net/dev >&3 + echo >&3 + if command -v netstat >/dev/null; then + echo '*** Protocol statistics:' >&3 + netstat -s >&3 || true + echo >&3 + fi + echo >&3 +} + +ask_network() { + test $same_system = yep || return 0 + test -f /etc/network/interfaces || return 0 + + yesno "Include network configuration from this computer? " nop + test $REPLY = yep || return 0 + + _add_etc_network_interfaces +} |