Files

30 lines
559 B
Bash
Executable File

#!/bin/bash
ROOT=""
for arg in "$@"; do
case "$arg" in
--root=*)
ROOT="${arg#*=}"
;;
esac
done
MACHINE_ID_FILE="${ROOT}/etc/machine-id"
if [ -f "$MACHINE_ID_FILE" ] && [ -s "$MACHINE_ID_FILE" ]; then
exit 0
fi
mkdir -p "$(dirname "$MACHINE_ID_FILE")"
if command -v dbus-uuidgen &>/dev/null; then
dbus-uuidgen --ensure 2>/dev/null
fi
if [ ! -f "$MACHINE_ID_FILE" ] || [ ! -s "$MACHINE_ID_FILE" ]; then
od -An -N16 -tx1 /dev/urandom | tr -d ' \n' > "$MACHINE_ID_FILE"
fi
chmod 0644 "$MACHINE_ID_FILE"