emissary-firmware/files/etc/uci-defaults/99-machine-id.sh

24 lines
625 B
Bash
Executable File

#/bin/sh
set -e
main() {
local machine_id_file="/etc/machine-id"
if [ -f "$machine_id_file" ]; then
echo "Machine ID already generated. Doing nothing."
exit 0
fi
# Accumulate data to create unique machine id
local mac_addresses=$(cat /sys/class/net/*/address | uniq | sort)
local device_model=$(cat /sys/firmware/devicetree/base/model)
# Ensure destination directory
mkdir -p "$(dirname "$machine_id_file")"
# Generate SHA256 hash of data and save it to $machine_id_file
echo "$mac_adresses $device_model" | sha256sum | cut -d ' ' -f1 > "$machine_id_file"
}
main