added self update function to sysupgrade

pull/279/head
cronyx 2022-07-26 23:02:00 +03:00
parent 40482fc88b
commit befd9e4f83
1 changed files with 24 additions and 2 deletions

View File

@ -1,8 +1,12 @@
#!/bin/sh
#
# OpenIPC.org | v.20220722
# OpenIPC.org | v.20220726
#
scr_version=1.0.0
args="$@"
set -e
echo_c() {
@ -106,6 +110,24 @@ free_resources() {
sync; echo 3 > /proc/sys/vm/drop_caches
}
self_update() {
if echo ${args} | grep "rootfs" || echo ${args} | grep "kernel" > /dev/null 2>&1; then
echo "Offline upgrade, skip sysupgrade version check."
else
echo "Online upgrade, checking sysupgrade version..."
curl -s -k -L -o /tmp/sysupgrade "https://raw.githubusercontent.com/cronyx/firmware/master/general/overlay/usr/sbin/sysupgrade"
dstv=`grep scr_version /tmp/sysupgrade | cut -f 2 -d '='`
if ! [ "${scr_version}" = "${dstv}" ]; then
echo "A new version is available, trying to update..."
mv /tmp/sysupgrade /usr/sbin/ ; chmod +x /usr/sbin/sysupgrade
echo "Done. Try running sysupgrade again."
exit 0
else
echo "Ok, version match."
fi
fi
}
create_lock() {
[ -f /tmp/sysupgrade.lock ] && echo -e "\e[1;31m\nAnother sysupgrade process is already running!\e[0m\n" && exit 1
touch /tmp/sysupgrade.lock
@ -249,8 +271,8 @@ print_sysinfo
echo_c 97 "\nTry '$(basename "$0") --help' for options." && \
exit 0
self_update
create_lock
free_resources
[ "$remote_update" -eq 1 ] && download_firmware
[ "$update_kernel" -eq 1 ] && do_update_kernel "$kernel_file"