find_and_ack_eula() { # Handle EULA , if needed. This is a generic method to handle BSPs # that might (or not) come with a EULA. If a machine has a EULA, we # assume that its corresponding layers has conf/EULA/$MACHINE file # with the EULA text, which we will display to the user and request # for acceptance. If accepted, the variable ACCEPT_EULA_$MACHINE is # set to 1 in local.conf, which can later be used by the BSP. # If the env variable EULA_$MACHINE is set it is used by default, # without prompting the user. # FIXME: there is a potential issue if the same $MACHINE is set in more than one layer.. but we should assert that earlier # $1 is layer directory # $2 is location of EULA file relative to layer directory if test x"" == x"$2"; then EULA=$(find $1 -print | grep "conf/eula/$MACHINE" | grep -v scripts | grep -v openembedded-core || true) else EULA=$1/$2 fi if [ -n "$EULA" ]; then # remove '-' since we are constructing a bash variable name here EULA_MACHINE="EULA_$(echo $MACHINE | sed 's/-//g')" # NOTE: indirect reference / dynamic variable if [ -n "${!EULA_MACHINE}" ]; then # the EULA_$MACHINE variable is set in the environment, so we just configure # ACCEPT_EULA_$MACHINE in local.conf EULA_ACCEPT=${!EULA_MACHINE} else # so we need to ask user if he/she accepts the EULA: cat <