From befd9e4f83bfc8800d9f77e98e33b783d466f2f3 Mon Sep 17 00:00:00 2001 From: cronyx Date: Tue, 26 Jul 2022 23:02:00 +0300 Subject: [PATCH 1/5] added self update function to sysupgrade --- general/overlay/usr/sbin/sysupgrade | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/general/overlay/usr/sbin/sysupgrade b/general/overlay/usr/sbin/sysupgrade index afef8a0e..7cb88914 100755 --- a/general/overlay/usr/sbin/sysupgrade +++ b/general/overlay/usr/sbin/sysupgrade @@ -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" From 14e7dc6ebcd4e0d9671f42daf6a0f7aa3f48aea7 Mon Sep 17 00:00:00 2001 From: cronyx Date: Tue, 26 Jul 2022 23:27:47 +0300 Subject: [PATCH 2/5] fix missing --- general/overlay/usr/sbin/sysupgrade | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/general/overlay/usr/sbin/sysupgrade b/general/overlay/usr/sbin/sysupgrade index 7cb88914..984904d7 100755 --- a/general/overlay/usr/sbin/sysupgrade +++ b/general/overlay/usr/sbin/sysupgrade @@ -112,19 +112,19 @@ free_resources() { self_update() { if echo ${args} | grep "rootfs" || echo ${args} | grep "kernel" > /dev/null 2>&1; then - echo "Offline upgrade, skip sysupgrade version check." + 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 + 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 | head -1 | 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 } From d944a2c130039fd24bb8415aefa4c3098dfbe34f Mon Sep 17 00:00:00 2001 From: cronyx Date: Wed, 27 Jul 2022 00:08:24 +0300 Subject: [PATCH 3/5] auto restart sysupgrade after self update --- general/overlay/usr/sbin/sysupgrade | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/general/overlay/usr/sbin/sysupgrade b/general/overlay/usr/sbin/sysupgrade index 984904d7..ec699a8f 100755 --- a/general/overlay/usr/sbin/sysupgrade +++ b/general/overlay/usr/sbin/sysupgrade @@ -120,8 +120,9 @@ self_update() { 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 + echo "Done. Restarting..." + exec "$0" ${args} + exit 1 else echo "Ok, version match." fi From eeab52b400c86978242019b9a7b3c25cc3148638 Mon Sep 17 00:00:00 2001 From: cronyx Date: Wed, 27 Jul 2022 00:13:33 +0300 Subject: [PATCH 4/5] change link to OpenIPC repo --- general/overlay/usr/sbin/sysupgrade | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/general/overlay/usr/sbin/sysupgrade b/general/overlay/usr/sbin/sysupgrade index ec699a8f..b937d574 100755 --- a/general/overlay/usr/sbin/sysupgrade +++ b/general/overlay/usr/sbin/sysupgrade @@ -1,6 +1,6 @@ #!/bin/sh # -# OpenIPC.org | v.20220726 +# OpenIPC.org | v.20220727 # scr_version=1.0.0 @@ -115,12 +115,12 @@ self_update() { 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" + curl -s -k -L -o /tmp/sysupgrade "https://raw.githubusercontent.com/OpenIPC/firmware/master/general/overlay/usr/sbin/sysupgrade" dstv=`grep scr_version /tmp/sysupgrade | head -1 | 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. Restarting..." + echo -e "Done. Restarting...\n" exec "$0" ${args} exit 1 else From 4c75ce73526c06d8948512b194853699ee65b063 Mon Sep 17 00:00:00 2001 From: cronyx Date: Wed, 27 Jul 2022 02:07:41 +0300 Subject: [PATCH 5/5] run updated sysupgrade from tmp --- general/overlay/usr/sbin/sysupgrade | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/general/overlay/usr/sbin/sysupgrade b/general/overlay/usr/sbin/sysupgrade index b937d574..499a18c5 100755 --- a/general/overlay/usr/sbin/sysupgrade +++ b/general/overlay/usr/sbin/sysupgrade @@ -112,16 +112,16 @@ free_resources() { self_update() { if echo ${args} | grep "rootfs" || echo ${args} | grep "kernel" > /dev/null 2>&1; then - echo "Offline upgrade, skip sysupgrade version check." + echo -e "\nOffline upgrade, skip sysupgrade version check." else - echo "Online upgrade, checking sysupgrade version..." + echo -e "\nOnline upgrade, checking sysupgrade version..." curl -s -k -L -o /tmp/sysupgrade "https://raw.githubusercontent.com/OpenIPC/firmware/master/general/overlay/usr/sbin/sysupgrade" dstv=`grep scr_version /tmp/sysupgrade | head -1 | 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 + chmod +x /tmp/sysupgrade echo -e "Done. Restarting...\n" - exec "$0" ${args} + exec /tmp/sysupgrade ${args} exit 1 else echo "Ok, version match."