tree: rework loader update

Signed-off-by: AuxXxilium <info@auxxxilium.tech>
This commit is contained in:
AuxXxilium 2024-09-27 20:52:14 +02:00
parent fd08eef485
commit c1bdea0e57
5 changed files with 44 additions and 70 deletions

View File

@ -124,7 +124,7 @@ jobs:
convertova "${IMAGE_FILE}" "arc.ova"
# Zip update and generate checksum
zip -9j update.zip "files/p3/bzImage-arc" "files/p3/initrd-arc" "files/p1/ARC-VERSION" "files/p1/ARC-BRANCH" "files/p1/boot/grub/grub.cfg" "files/p3/offline/offline.json"
zip -9j update.zip "files/p3/*" "files/p1/ARC-VERSION" "files/p1/ARC-BRANCH" "files/p1/boot/grub/grub.cfg"
sha256sum update.zip >checksum.sha256
# Build incremental
@ -182,7 +182,7 @@ jobs:
convertova "${IMAGE_FILE}" "arc-next.ova"
# Zip update and generate checksum
zip -9j update-next.zip "files/p3/bzImage-arc" "files/p3/initrd-arc" "files/p1/ARC-VERSION" "files/p1/ARC-BRANCH" "files/p1/boot/grub/grub.cfg" "files/p3/offline/offline.json"
zip -9j update-next.zip "files/p3/*" "files/p1/ARC-VERSION" "files/p1/ARC-BRANCH" "files/p1/boot/grub/grub.cfg"
sha256sum update-next.zip >checksum-next.sha256
# Zip image and generate checksum

View File

@ -162,7 +162,7 @@ jobs:
convertova "${IMAGE_FILE}" "arc.ova"
# Zip update and generate checksum
zip -9j update.zip "files/p3/bzImage-arc" "files/p3/initrd-arc" "files/p1/ARC-VERSION" "files/p1/ARC-BRANCH" "files/p1/boot/grub/grub.cfg" "files/p3/offline/offline.json"
zip -9j update.zip "files/p3/*" "files/p1/ARC-VERSION" "files/p1/ARC-BRANCH" "files/p1/boot/grub/grub.cfg"
sha256sum update.zip >checksum.sha256
# Build incremental
@ -220,7 +220,7 @@ jobs:
convertova "${IMAGE_FILE}" "arc-next.ova"
# Zip update and generate checksum
zip -9j update-next.zip "files/p3/bzImage-arc" "files/p3/initrd-arc" "files/p1/ARC-VERSION" "files/p1/ARC-BRANCH" "files/p1/boot/grub/grub.cfg" "files/p3/offline/offline.json"
zip -9j update-next.zip "files/p3/*" "files/p1/ARC-VERSION" "files/p1/ARC-BRANCH" "files/p1/boot/grub/grub.cfg"
sha256sum update-next.zip >checksum-next.sha256
# Zip image and generate checksum

View File

@ -817,8 +817,8 @@ function updateMenu() {
--menu "Choose an Option" 0 0 0 \
0 "Buildroot Branch: \Z1${ARCBRANCH}\Zn" \
1 "Automated Update Mode" \
2 "Full-Upgrade Loader \Z1(reflash)\Zn" \
3 "\Z4Advanced:\Zn Update Loader" \
2 "Full-Update Loader \Z1(update)\Zn" \
3 "Full-Upgrade Loader \Z1(reflash)\Zn" \
4 "\Z4Advanced:\Zn Update Addons" \
5 "\Z4Advanced:\Zn Update Configs" \
6 "\Z4Advanced:\Zn Update LKMs" \
@ -834,6 +834,33 @@ function updateMenu() {
. ${ARC_PATH}/update.sh
;;
2)
# Ask for Tag
TAG=""
NEWVER="$(curl -m 10 -skL "https://api.github.com/repos/AuxXxilium/arc/releases" | jq -r ".[].tag_name" | sort -rV | head -1)"
OLDVER="$(cat ${PART1_PATH}/ARC-VERSION)"
dialog --clear --backtitle "$(backtitle)" --title "Full-Update Loader" \
--menu "Current: ${OLDVER} -> Which Version?" 7 50 0 \
1 "Latest ${NEWVER}" \
2 "Select Version" \
2>"${TMP_PATH}/opts"
[ $? -ne 0 ] && break
opts=$(cat ${TMP_PATH}/opts)
if [ ${opts} -eq 1 ]; then
TAG=""
elif [ ${opts} -eq 2 ]; then
dialog --backtitle "$(backtitle)" --title "Full-Update Loader" \
--inputbox "Type the Version!" 0 0 \
2>"${TMP_PATH}/input"
TAG=$(cat "${TMP_PATH}/input")
[ -z "${TAG}" ] && return 1
fi
if updateLoader "${TAG}"; then
writeConfigKey "arc.builddone" "false" "${USER_CONFIG_FILE}"
BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")"
exec reboot && exit 0
fi
;;
3)
# Ask for Tag
TAG=""
NEWVER="$(curl -m 10 -skL "https://api.github.com/repos/AuxXxilium/arc/releases" | jq -r ".[].tag_name" | sort -rV | head -1)"
@ -860,45 +887,6 @@ function updateMenu() {
exec reboot && exit 0
fi
;;
3)
# Ask for Tag
TAG=""
NEWVER="$(curl -m 10 -skL "https://api.github.com/repos/AuxXxilium/arc/releases" | jq -r ".[].tag_name" | sort -rV | head -1)"
OLDVER="$(cat ${PART1_PATH}/ARC-VERSION)"
dialog --clear --backtitle "$(backtitle)" --title "Update Loader" \
--menu "Current: ${OLDVER} -> Which Version?" 7 50 0 \
1 "Latest ${NEWVER}" \
2 "Select Version" \
2>"${TMP_PATH}/opts"
[ $? -ne 0 ] && break
opts=$(cat ${TMP_PATH}/opts)
if [ ${opts} -eq 1 ]; then
TAG=""
elif [ ${opts} -eq 2 ]; then
dialog --backtitle "$(backtitle)" --title "Update Loader" \
--inputbox "Type the Version!" 0 0 \
2>"${TMP_PATH}/input"
TAG=$(cat "${TMP_PATH}/input")
[ -z "${TAG}" ] && return 1
fi
if updateLoader "${TAG}"; then
writeConfigKey "arc.builddone" "false" "${USER_CONFIG_FILE}"
BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")"
# Ask for Reboot
dialog --clear --backtitle "$(backtitle)" --title "Update done"\
--no-cancel --menu "Reboot now?" 7 40 0 \
1 "Yes - Reboot Arc Loader now" \
2 "No - I want to update more" \
2>"${TMP_PATH}/resp"
resp=$(cat ${TMP_PATH}/resp)
[ -z "${resp}" ] && return 1
if [ ${resp} -eq 1 ]; then
rebootTo config
elif [ ${resp} -eq 2 ]; then
return 0
fi
fi
;;
4)
# Ask for Tag
TAG=""

View File

@ -134,7 +134,7 @@ function updateLoader() {
return 1
fi
elif [ ${ARC_VERSION} -lt ${UPDATE_VERSION} ] && [ "${AUTOMATED}" == "true" ]; then
dialog --backtitle "$(backtitle)" --title "Update Loader" \
dialog --backtitle "$(backtitle)" --title "Full-Update Loader" \
--infobox "Config is not compatible to new Version!\nUpdate not possible!\nPlease reflash Loader." 0 0
sleep 5
updateFaileddialog
@ -171,13 +171,11 @@ function updateLoader() {
echo "Download successful!"
if [ "$(sha256sum "${TMP_PATH}/update.zip" | awk '{print $1}')" == "$(cat ${TMP_PATH}/checksum.sha256 | awk '{print $1}')" ]; then
echo "Download successful!"
unzip -oq "${TMP_PATH}/update.zip" -d "${TMP_PATH}"
unzip -oq "${TMP_PATH}/update.zip" -d "${PART3_PATH}"
echo "Installing new Loader Image..."
cp -f "${TMP_PATH}/grub.cfg" "${USER_GRUB_CONFIG}"
cp -f "${TMP_PATH}/ARC-VERSION" "${PART1_PATH}/ARC-VERSION"
cp -f "${TMP_PATH}/ARC-BRANCH" "${PART1_PATH}/ARC-BRANCH"
cp -f "${TMP_PATH}/bzImage-arc" "${ARC_BZIMAGE_FILE}"
cp -f "${TMP_PATH}/initrd-arc" "${ARC_RAMDISK_FILE}"
mv -f "${PART3_PATH}/grub.cfg" "${USER_GRUB_CONFIG}"
mv -f "${PART3_PATH}/ARC-VERSION" "${PART1_PATH}/ARC-VERSION"
mv -f "${PART3_PATH}/ARC-BRANCH" "${PART1_PATH}/ARC-BRANCH"
rm -f "${TMP_PATH}/update.zip"
echo "Update done!"
sleep 2
@ -191,7 +189,7 @@ function updateLoader() {
sleep 5
updateFailed
fi
) 2>&1 | dialog --backtitle "$(backtitle)" --title "Update Loader" \
) 2>&1 | dialog --backtitle "$(backtitle)" --title "Full-Update Loader" \
--progressbox "Updating Loader..." 20 70
fi
return 0

View File

@ -62,7 +62,7 @@ function arcUpdate() {
fi
FAILED="false"
if echo "${ARC_VERSION}" | grep -q "dev"; then
dialog --backtitle "$(backtitle)" --title "Update Loader" --aspect 18 \
dialog --backtitle "$(backtitle)" --title "Full-Update Loader" --aspect 18 \
--infobox "Development Version detected." 0 0
sleep 2
DEV="true"
@ -70,31 +70,19 @@ function arcUpdate() {
# Automatic Update
[ "${DEV}" == "true" ] && updateLoader "${ARC_VERSION}" || updateLoader
[ $? -ne 0 ] && FAILED="true"
[ "${FAILED}" == "false" ] && updateAddons || true
[ $? -ne 0 ] && FAILED="true"
[ "${FAILED}" == "false" ] && updateConfigs || true
[ $? -ne 0 ] && FAILED="true"
[ "${FAILED}" == "false" ] && updateLKMs || true
[ $? -ne 0 ] && FAILED="true"
[ "${FAILED}" == "false" ] && updateModules || true
[ $? -ne 0 ] && FAILED="true"
[ "${FAILED}" == "false" ] && updatePatches || true
[ $? -ne 0 ] && FAILED="true"
[ "${FAILED}" == "false" ] && updateCustom || true
[ $? -ne 0 ] && FAILED="true"
if [ "${FAILED}" == "true" ] && [ "${UPDATEMODE}" == "true" ]; then
dialog --backtitle "$(backtitle)" --title "Update Loader" --aspect 18 \
dialog --backtitle "$(backtitle)" --title "Full-Update Loader" --aspect 18 \
--infobox "Update failed!\nPlease try again later." 0 0
sleep 3
exec reboot
elif [ "${FAILED}" == "true" ]; then
dialog --backtitle "$(backtitle)" --title "Update Loader" --aspect 18 \
dialog --backtitle "$(backtitle)" --title "Full-Update Loader" --aspect 18 \
--infobox "Update failed!\nRebooting to Config Mode..." 0 0
sleep 3
rebootTo config
fi
# Ask for Boot
dialog --backtitle "$(backtitle)" --title "Update Loader" --aspect 18 \
dialog --backtitle "$(backtitle)" --title "Full-Update Loader" --aspect 18 \
--infobox "Update successful!" 0 0
boot
}
@ -123,7 +111,7 @@ function boot() {
if [ "${OFFLINE}" == "false" ]; then
arcUpdate
else
dialog --backtitle "$(backtitle)" --title "Update Loader" --aspect 18 \
dialog --backtitle "$(backtitle)" --title "Full-Update Loader" --aspect 18 \
--infobox "Offline Mode enabled.\nCan't Update Loader!" 0 0
sleep 5
exec reboot