#!/bin/bash -e # Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. # For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md usage() { cat << ==usage Usage: $(basename "$0") [image_path] [key=value...] image_path: Destination image path name for. ex eeprom.img key=value: pairs of key and value to put into json eeprom file ==usage exit 1 } if [ $# -lt 2 ]; then echo "Error! Invalid argument count" usage exit 1 fi NVROM_FS_SIZE=32768 NVROM_LFS_BLOCK_SIZE=128 FACTORY_FILENAME="personalization.json" IMAGE_NAME=$(realpath "$1") #Find genlittlefs tool if [ -z "$SDIR" ]; then SDIR=".." fi GENLFS=$(find $SDIR -type f -iname genlittlefs -executable -print -quit) if [ -z ${GENLFS} ]; then echo "Error: Unable to find genlilttlefs..." exit 1 fi #Process all arguments in form key=value and create json string from it shift JSON="{" for ARGUMENT in "$@" do if [[ ${ARGUMENT} == *"="* ]]; then key=${ARGUMENT%=*} value=${ARGUMENT##*=} JSON+="\"$key\":\"$value\"" JSON+="," else echo "Invalid argument: $ARGUMENT" usage fi done JSON=${JSON%?} JSON+="}" echo $JSON > "$FACTORY_FILENAME" #Generate eeprom image $GENLFS --image "$IMAGE_NAME" --block_size=$NVROM_LFS_BLOCK_SIZE --filesystem_size=$NVROM_FS_SIZE --overwrite -- $FACTORY_FILENAME sync