#!/bin/bash

# modify interface sub-block

shopt -s extglob

if [[ "$*" == *--help* ]] ; then
    echo ${0##*/} [test_]FILE INTERFACE HWID
    exit 0
fi

if [[ "$1" == test_* ]] ; then
    origfile=$1
    bootfile=/tmp/${1##*/}_$$
    cp $origfile $bootfile
    trap "diff -c $origfile $bootfile; rm -f $bootfile; exit 0" $?
else
    origfile=
    bootfile=$1
fi
eth=$2
hwid=$3

sed -i '/^interfaces {$/,/^}$/ {
	/^    ethernet '"$eth"' {$/ {
	    :join
	    /\n    }$/ {
		/hw-id:\? / s/\(hw-id\):\? [0-9a-fA-F:]\+/\1 '"$hwid"'/
		/hw-id:\? /!	s/}$/    hw-id '"$hwid"'\n    }/
		b
	    }
	    N
	    b join
	}
}' $bootfile