mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-29 14:16:31 +00:00
fwupdate: run pre-upgrade after extract
This commit is contained in:
parent
91389abbf2
commit
8feeeb476f
@ -211,6 +211,34 @@ function download_status() {
|
|||||||
|
|
||||||
#### extract ####
|
#### extract ####
|
||||||
|
|
||||||
|
function run_pre_upgrade() {
|
||||||
|
which losetup &>/dev/null || return
|
||||||
|
|
||||||
|
root_start=$(cat ${FW_DIR}/${ROOT_INFO_FILE} | cut -d ' ' -f 1)
|
||||||
|
tmp_mnt="/tmp/fwupdate_root"
|
||||||
|
loop="/dev/loop4"
|
||||||
|
pre_upgrade="${tmp_mnt}/usr/share/pre-upgrade/*"
|
||||||
|
|
||||||
|
mkdir -p ${tmp_mnt}
|
||||||
|
losetup -o $((root_start * 1024 * 1024)) ${loop} ${FW_DIR}/${FW_FILE_EXTR}
|
||||||
|
mount ${loop} ${tmp_mnt}
|
||||||
|
if [[ -d ${pre_upgrade} ]]; then
|
||||||
|
for script in ${pre_upgrade}/*.sh; do
|
||||||
|
echo "running pre-upgrade script $(basename ${script})"
|
||||||
|
if [[ -x ${script} ]] && ! ${script}; then
|
||||||
|
# non-zero exit status of pre-upgrade script indicates that
|
||||||
|
# the upgrade process must not be continued
|
||||||
|
|
||||||
|
echo "aborted by pre-upgrade script"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
umount ${tmp_mnt}
|
||||||
|
losetup -d ${loop}
|
||||||
|
}
|
||||||
|
|
||||||
function do_extract() {
|
function do_extract() {
|
||||||
echo "extracting..."
|
echo "extracting..."
|
||||||
|
|
||||||
@ -281,6 +309,8 @@ function do_extract() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# TODO verify hash
|
# TODO verify hash
|
||||||
|
|
||||||
|
run_pre_upgrade
|
||||||
}
|
}
|
||||||
|
|
||||||
function extract_status() {
|
function extract_status() {
|
||||||
@ -415,32 +445,6 @@ function flash_cleanup() {
|
|||||||
|
|
||||||
#### flash reboot ####
|
#### flash reboot ####
|
||||||
|
|
||||||
function run_pre_upgrade() {
|
|
||||||
root_start=$(cat ${FW_DIR}/${ROOT_INFO_FILE} | cut -d ' ' -f 1)
|
|
||||||
tmp_mnt="/tmp/fwupdate_root"
|
|
||||||
loop="/dev/loop4"
|
|
||||||
pre_upgrade="${tmp_mnt}/usr/share/pre-upgrade/*"
|
|
||||||
|
|
||||||
mkdir -p ${tmp_mnt}
|
|
||||||
losetup -o $((root_start * 1024 * 1024)) ${loop} ${FW_DIR}/${FW_FILE_EXTR}
|
|
||||||
mount ${loop} ${tmp_mnt}
|
|
||||||
if [[ -d ${pre_upgrade} ]]; then
|
|
||||||
for script in ${pre_upgrade}/*.sh; do
|
|
||||||
echo "running pre-upgrade script $(basename ${script})"
|
|
||||||
if [[ -x ${script} ]] && ! ${script}; then
|
|
||||||
# non-zero exit status of pre-upgrade script indicates that
|
|
||||||
# the upgrade process must not be continued
|
|
||||||
|
|
||||||
echo "aborted by pre-upgrade script"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
umount ${tmp_mnt}
|
|
||||||
losetup -d ${loop}
|
|
||||||
}
|
|
||||||
|
|
||||||
function reallocate_root_part() {
|
function reallocate_root_part() {
|
||||||
root_info=$(fdisk --bytes -l -o device,start,end,size ${DISK_DEV} | grep "${ROOT_DEV}")
|
root_info=$(fdisk --bytes -l -o device,start,end,size ${DISK_DEV} | grep "${ROOT_DEV}")
|
||||||
root_info=(${root_info})
|
root_info=(${root_info})
|
||||||
@ -484,7 +488,6 @@ function do_flash_reboot() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
run_pre_upgrade
|
|
||||||
reallocate_root_part
|
reallocate_root_part
|
||||||
|
|
||||||
echo "preparing for reboot..."
|
echo "preparing for reboot..."
|
||||||
|
Loading…
x
Reference in New Issue
Block a user