44 lines
1.0 KiB
Bash
44 lines
1.0 KiB
Bash
#!/bin/sh -e
|
|
. /usr/share/debconf/confmodule
|
|
db_capb backup
|
|
|
|
log() {
|
|
logger -t inventory-hostname "$@"
|
|
}
|
|
|
|
INVENTORY_FILE=/cdrom/install/inventory.txt
|
|
|
|
SERIAL=$(cat /sys/class/dmi/id/product_serial)
|
|
|
|
if [ -z "$SERIAL" ]; then
|
|
log "Warning: No serial number found, skipping."
|
|
exit 0
|
|
fi
|
|
|
|
if [ ! -f "$INVENTORY_FILE" ]; then
|
|
log "Warning: No inventory file found at $INVENTORY_FILE, skipping."
|
|
exit 0
|
|
fi
|
|
|
|
SET_HOSTNAME=$(sed -n -e "s/^${SERIAL}\s\+\([0-9A-Za-z.-]\+\)\$/\1/p" "$INVENTORY_FILE")
|
|
|
|
if [ -z "$SET_HOSTNAME" ]; then
|
|
db_subst inventory-hostname/get_hostname SERIAL "$SERIAL"
|
|
if ! db_input high inventory-hostname/get_hostname; then
|
|
# question not asked
|
|
exit 0
|
|
fi
|
|
if ! db_go; then
|
|
exit 10 # back up
|
|
fi
|
|
|
|
db_get inventory-hostname/get_hostname
|
|
SET_HOSTNAME="$RET"
|
|
elif [ "$(echo "$SET_HOSTNAME" | wc -l)" != "1" ]; then
|
|
log "Warning: Multiple inventory entries found for serial number $SERIAL, skipping."
|
|
exit 0
|
|
fi
|
|
|
|
db_set netcfg/get_hostname "$SET_HOSTNAME"
|
|
db_fset netcfg/get_hostname seen true
|