mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-05-19 05:57:30 -04:00
109 lines
2.6 KiB
Bash
Executable File
109 lines
2.6 KiB
Bash
Executable File
#!/bin/bash -e
|
|
# Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
|
|
# For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#create update image
|
|
|
|
function help() {
|
|
cat <<- EOF
|
|
Create Update Image for the SOURCE_TARGET. This script should be run from build directory.
|
|
|
|
${0} <SOURCE_TARGET> <VERSION> <PLATFORM>
|
|
|
|
SOURCE_TARGET - Name of the target (usually PurePhone or BellHybrid)
|
|
VERSION - version number to attach to file name
|
|
PLATFORM - RT1051 or Linux
|
|
|
|
In the current work dir, the script will create update image named from this template:
|
|
<SOURCE_TARGET>-<VERSION>-<PLATFORM>-Update.tar
|
|
|
|
|
|
|
|
EOF
|
|
}
|
|
|
|
function setVars() {
|
|
SOURCE_TARGET=${1}
|
|
VERSION=${2}
|
|
PLATFORM=${3}
|
|
STAGEING_DIR="${SOURCE_TARGET}-${VERSION}-${PLATFORM}-Update"
|
|
PACKAGE_FILE="${STAGEING_DIR}.tar"
|
|
DEPS=(
|
|
"sysroot/sys/current/assets"
|
|
"sysroot/sys/user"
|
|
"sysroot/sys/current/${SOURCE_TARGET}-boot.bin"
|
|
"sysroot/sys/current/country-codes.db"
|
|
"sysroot/sys/current/Luts.bin"
|
|
"version.json"
|
|
"ecoboot.bin"
|
|
"updater.bin"
|
|
)
|
|
}
|
|
|
|
function checkForDeps() {
|
|
local DEPS=${1}
|
|
I=0
|
|
DEPS_COUNT=${#DEPS[@]}
|
|
while [[ I -lt ${DEPS_COUNT} ]]; do
|
|
ITEM=${DEPS[${I}]}
|
|
if [[ ! -e "${ITEM}" ]]; then
|
|
echo "Couldn't find dependency: \"${ITEM}\""
|
|
echo exti 2
|
|
fi
|
|
I=$(( I + 1))
|
|
done
|
|
echo "Deps-OK"
|
|
}
|
|
|
|
function cleanStagingDir(){
|
|
local STAGEING_DIR=${1}
|
|
if [[ -d ${STAGEING_DIR} ]]; then
|
|
rm -Rf ${STAGEING_DIR}
|
|
fi
|
|
mkdir ${STAGEING_DIR} -v
|
|
}
|
|
|
|
function linkInStageing(){
|
|
pushd ${STAGEING_DIR} 1> /dev/null
|
|
|
|
mkdir assets
|
|
pushd assets 1> /dev/null
|
|
ln -s ../../sysroot/sys/current/assets/fonts
|
|
ln -s ../../sysroot/sys/current/assets/images
|
|
ln -s ../../sysroot/sys/current/assets/lang
|
|
popd 1> /dev/null
|
|
|
|
ln -s ../sysroot/sys/user
|
|
ln -s ../sysroot/sys/current/${SOURCE_TARGET}-boot.bin boot.bin
|
|
ln -s ../sysroot/sys/current/country-codes.db
|
|
ln -s ../sysroot/sys/current/Luts.bin
|
|
ln -s ../ecoboot.bin
|
|
ln -s ../updater.bin
|
|
ln -s ../${SOURCE_TARGET}-version.json version.json
|
|
popd 1> /dev/null
|
|
}
|
|
|
|
function addChecksums() {
|
|
pushd ${STAGEING_DIR} 1> /dev/null
|
|
rhash -u checksums.txt -r .
|
|
popd 1> /dev/null
|
|
}
|
|
|
|
function compress() {
|
|
tar chf ${PACKAGE_FILE} -C ${STAGEING_DIR} .
|
|
}
|
|
|
|
if [[ $# -ne 3 ]]; then
|
|
help
|
|
exit 1
|
|
fi
|
|
|
|
setVars "${1}" "${2}" "${3}"
|
|
checkForDeps ${DEPS}
|
|
cleanStagingDir ${STAGEING_DIR}
|
|
linkInStageing
|
|
addChecksums
|
|
compress
|
|
|
|
|