FunKey-OS/FunKey/board/funkey/update_partition

96 lines
2.3 KiB
Bash
Executable File

#!/bin/sh
# Update partition script
source /usr/local/lib/utils
root_part_num=2
root_part=/dev/mmcblk0p${root_part_num}
root_mount=/tmp/rootfs
# Compatibility issue with older Recovery notifications
if [ -x /usr/local/sbin/notif ]; then
alias notif_set="notif set"
fi
do_preinst()
{
notif_set 0 " 1/4 EXTRACT FIRMWARE UPDATE..^DO NOT TURN OFF THE CONSOLE"
exit 0
}
do_postinst()
{
#################
# Resize Rootfs #
#################
notif_set 0 " 2/4 RESIZE ROOT FILESYSTEM^DO NOT TURN OFF THE CONSOLE"
resize2fs ${root_part}
if [ $? -ne 0 ]; then
notif_set 0 " CANNOT RESIZE ROOT^FILESYSTEM"
exit 1
fi
##############################
# SHARED PARTITION PROCESSES #
##############################
notif_set 0 " 3/4 COPY FILES TO USB MOUNT^DO NOT TURN OFF THE CONSOLE"
# Mount Rootfs
mkdir -p ${root_mount}
mount -t ext4 ${root_part} ${root_mount}
if [ $? -ne 0 ]; then
notif_set 0 "CANNOT MOUNT ROOT^FILESYSTEM"
exit 1
fi
# Copy OPKs
cp -r ${root_mount}/usr/local/share/OPKs/* /mnt
# Copy freware games and other necessary mnt files
unzip -q -o ${root_mount}/usr/local/share/mnt_files.zip -d /mnt/
# Fix PCE opk name if necessary
#mv /mnt/Emulators/pce_mednaefn_funkey-s.opk /mnt/Emulators/pce_mednafen_funkey-s.opk 1>/dev/null 2>&1
# Unmount Rootfs
umount ${root_mount}
if [ $? -ne 0 ]; then
notif_set 0 "CANNOT UNMOUNT ROOT^FILESYSTEM"
exit 1
fi
# Change FunKey config files extension from .cfg to .fkcfg
#SAVEIFS=$IFS
#IFS=$(echo -en "\n\b")
#for FOLDER in "Atari lynx" "Game Boy" "Game Boy Advance" "Game Boy Color" "Game Gear" "Neo Geo Pocket" "NES" "PCE-TurboGrafx" "PS1" "Sega Genesis" "Sega Master System" "SNES" "WonderSwan"; do
# for FILE in $(ls /mnt/"${FOLDER}"/*.cfg 2>/dev/null); do
# mv "$FILE" "${FILE%.cfg}.fkcfg"
# done
#done
#IFS=$SAVEIFS
#####################
# Erase update file #
#####################
for file in $(ls /mnt/FunKey-*.fwu); do
notif_set 0 " 4/4 ERASE UPDATE FILE^DO NOT TURN OFF THE CONSOLE"
rm -f "${file}"
done
exit 0
}
echo $0 $1
case "$1" in
preinst)
do_preinst
;;
postinst)
do_postinst
;;
*)
exit 1
;;
esac