summaryrefslogtreecommitdiffstats
path: root/debian/templates/image.bug/include-network
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/templates/image.bug/include-network69
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
+}