kumquat-buildroot/package/mender/mender-inventory-network
Angelo Compagnucci 6ed0e6ba23 package/mender: new package
This patch add mender, an open source over-the-air (OTA) software
updater for embedded Linux devices.

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
[Thomas:
 - add entry to DEVELOPERS file.
 - drop dependency on systemd, since there is really no build
   dependency, it's just that the init script integration is missing.
 - add Config.in comment about the thread dependency
 - don't override install commands, otherwise the mender binary is not
   installed, and instead use a post install target hook.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-06-05 21:43:42 +02:00

48 lines
1.4 KiB
Bash

#!/bin/sh
#
# Example script called by Mender agent to collect inventory data for a
# particular devce. The script needs to be located in $(datadir)/mender and its
# name shall start with `mender-inventory-` prefix. The script shall exit with
# non-0 status on errors. In this case the agent will discard any output the
# script may have produced.
#
# The script shall output inventory data in <key>=<value> format, one entry per
# line. Entries appearing multiple times will be joined in a list under the same
# key.
#
# $ ./mender-inventory-network
# mac_br-fbfdad18c33c=02:42:7e:74:96:85
# network_interfaces=br-fbfdad18c33c
# ipv4_br-fbfdad18c33c=172.21.0.1/16
# mac_enp0s25=de:ad:be:ef:bb:05
# network_interfaces=enp0s25
# ipv4_enp0s25=123.22.0.197/16
# ipv4_enp0s25=10.20.20.105/16
# ipv6_enp0s25=fe80::2aad:beff:feef:bb05/64
#
#
# The example script collects the list of network interfaces, as well as
# ethernet and IP addresses of each of the interfaces.
#
set -ue
SCN=/sys/class/net
min=65535
ifdev=
# find iface with lowest ifindex, except loopback
for devpath in $SCN/*; do
dev=$(basename $devpath)
if [ $dev = "lo" ]; then
continue
fi
echo "mac_$dev=$(cat $devpath/address)"
echo "network_interfaces=$dev"
ip addr show dev $dev | awk -v dev=$dev '
/inet / { printf("ipv4_%s=%s\n", dev, $2) }
/inet6 / {printf("ipv6_%s=%s\n", dev, $2) }
'
done