#!/bin/bash # Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. # For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md # set -eo pipefail # this is useless for now if [ ! -e config/common.sh ]; then echo "No config/common.sh refuse to continue" exit 1 else source ./config/common.sh fi VERSION_KERNEL=`grep tskKERNEL_VERSION_NUMBER module-os/FreeRTOS/include/task.h | awk '{print $3}' | tr -d '\"'` VERSION_CODENAME="salvador" print_help() { echo "Usage: $0 [OPTION] [BUILD-DIR]" echo " -h print help" echo " -c version codename to embed" echo " -k kernel version if needed" echo " -b bootloader file to include" echo " -v bootloader file version" echo " -d build directory" echo " -s sql migration JSON" echo exit 1 } while getopts "s:c:k:b:v:d:h" arg; do case "${arg}" in c) VERSION_CODENAME=$OPTARG ;; k) VERSION_KERNEL=$OPTARG ;; b) BOOTLOADER_FILE=$OPTARG ;; v) BOOTLOADER_VERSION=$OPTARG ;; d) BUILD_PATH=$OPTARG ;; h) print_help ;; *) print_help ;; esac done shift $((OPTIND-1)) if [ ! -d "$BUILD_PATH" ]; then if [ ! -z $BUILD_PATH ]; then echo "$BUILD_PATH does not exist" fi print_help fi check_target_rt1051 "$BUILD_PATH" if [ ! -f $BUILD_PATH/boot.bin ]; then echo "No boot.bin in $BUILD_PATH, refuse to continue" exit 1 fi if [ ! -x $(which rhash) ]; then echo "Please install the rhash command" exit 1 fi if [ -d update ]; then rm -rf update fi mkdir -p update/ mkdir -p update/tmp if [ ! -f config/version.json.template ]; then echo "No config/version.json.template" exit 1 fi vjson=update/tmp/version.json cp config/version.json.template $vjson sed -i -e 's/__GIT_BRANCH__/'$MUDITAOS_GIT_BRANCH'/g' $vjson sed -i -e 's/__GIT_TAG__/'$MUDITAOS_GIT_TAG'/g' $vjson sed -i -e 's/__GIT_REVISION__/'$MUDITAOS_GIT_REV'/g' $vjson sed -i -e 's/__VERSION_MAJOR__/'$MUDITAOS_VERSION_MAJOR'/g' $vjson sed -i -e 's/__VERSION_MINOR__/'$MUDITAOS_VERSION_MINOR'/g' $vjson sed -i -e 's/__VERSION_PATCH__/'$MUDITAOS_VERSION_PATCH'/g' $vjson sed -i -e 's/__VERSION_STRING__/'$MUDITAOS_GIT_TAG'/g' $vjson BUILD_HOST=`uname -r` BUILD_USER=`whoami` BUILD_DATE=`date +'%F-%T'` sed -i -e 's/__MISC_CODENAME__/'$VERSION_CODENAME'/g' $vjson sed -i -e 's/__MISC_KERNEL__/'$VERSION_KERNEL'/g' $vjson sed -i -e 's/__MISC_BUILD_HOST__/'$BUILD_HOST'/g' $vjson sed -i -e 's/__MISC_BUILD_DATE__/'$BUILD_DATE'/g' $vjson sed -i -e 's/__MISC_BUILD_USER__/'$BUILD_USER'/g' $vjson echo "-- copy $BUILD_PATH/boot.bin" cp $BUILD_PATH/boot.bin update/tmp/ for file in $IMAGE_FILES; do echo "-- copy $file" cp -r image/$file update/tmp/ done # don't include function files rm -f update/tmp/.boot.ini rm -f update/tmp/.boot.ini.crc32 # check for bootloader update if [ -f "$BOOTLOADER_FILE" ]; then echo "-- including bootloader update file: $BOOTLOADER_FILE" sed -i -e 's/__BOOTLOADER_INCLUDED__/1/g' $vjson sed -i -e 's/__BOOTLOADER_INCLUDED_VERSION__/'$BOOTLOADER_VERSION'/g' $vjson sed -i -e 's/__BOOTLOADER_INCLUDED_FILENAME__/'$(basename $BOOTLOADER_FILE)'/g' $vjson cp $BOOTLOADER_FILE update/tmp/ else sed -i -e 's/__BOOTLOADER_INCLUDED__/0/g' $vjson sed -i -e 's/__BOOTLOADER_INCLUDED_VERSION__//g' $vjson sed -i -e 's/__BOOTLOADER_INCLUDED_FILENAME__//g' $vjson fi rm -f update/*.tar curpwd=`pwd` vstr=$MUDITAOS_VERSION_MAJOR.$MUDITAOS_VERSION_MINOR.$MUDITAOS_VERSION_PATCH-$MUDITAOS_GIT_REV echo -ne "-- " cd update/tmp && rhash -ru checksums.txt . cd $curpwd echo "-- create tar update/muditaos-$vstr.tar" cd update/tmp && tar -cf ../muditaos-$vstr.tar . cd $curpwd ls -alh update/muditaos-$vstr.tar