@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
[ -z "${ARC_PATH}" ] || [ ! -d "${ARC_PATH}/include" ] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
[[ -z "${ARC_PATH}" || ! -d "${ARC_PATH}/include" ]] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||||
|
|
||||||
. ${ARC_PATH}/include/functions.sh
|
. ${ARC_PATH}/include/functions.sh
|
||||||
. ${ARC_PATH}/include/addons.sh
|
. ${ARC_PATH}/include/addons.sh
|
||||||
@@ -137,7 +137,7 @@ function arcMenu() {
|
|||||||
else
|
else
|
||||||
ARCAV="NonArc"
|
ARCAV="NonArc"
|
||||||
fi
|
fi
|
||||||
if [ "${PLATFORM}" = "r1000" ] || [ "${PLATFORM}" = "v1000" ] || [ "${PLATFORM}" = "epyc7002" ]; then
|
if [[ "${PLATFORM}" = "r1000" || "${PLATFORM}" = "v1000" || "${PLATFORM}" = "epyc7002" ]]; then
|
||||||
CPU="AMD"
|
CPU="AMD"
|
||||||
else
|
else
|
||||||
CPU="Intel"
|
CPU="Intel"
|
||||||
@@ -193,7 +193,7 @@ function arcMenu() {
|
|||||||
writeConfigKey "arc.mac1" "" "${USER_CONFIG_FILE}"
|
writeConfigKey "arc.mac1" "" "${USER_CONFIG_FILE}"
|
||||||
CONFDONE="$(readConfigKey "arc.confdone" "${USER_CONFIG_FILE}")"
|
CONFDONE="$(readConfigKey "arc.confdone" "${USER_CONFIG_FILE}")"
|
||||||
BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")"
|
BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")"
|
||||||
if [ -f "${ORI_ZIMAGE_FILE}" ] || [ -f "${ORI_RDGZ_FILE}" ] || [ -f "${MOD_ZIMAGE_FILE}" ] || [ -f "${MOD_RDGZ_FILE}" ]; then
|
if [[ -f "${ORI_ZIMAGE_FILE}" || -f "${ORI_RDGZ_FILE}" || -f "${MOD_ZIMAGE_FILE}" || -f "${MOD_RDGZ_FILE}" ]]; then
|
||||||
# Delete old files
|
# Delete old files
|
||||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
|
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
|
||||||
fi
|
fi
|
||||||
@@ -223,7 +223,7 @@ function arcbuild() {
|
|||||||
if [ "${PRODUCTVER}" != "${resp}" ]; then
|
if [ "${PRODUCTVER}" != "${resp}" ]; then
|
||||||
PRODUCTVER="${resp}"
|
PRODUCTVER="${resp}"
|
||||||
writeConfigKey "productver" "${PRODUCTVER}" "${USER_CONFIG_FILE}"
|
writeConfigKey "productver" "${PRODUCTVER}" "${USER_CONFIG_FILE}"
|
||||||
if [ -f "${ORI_ZIMAGE_FILE}" ] || [ -f "${ORI_RDGZ_FILE}" ] || [ -f "${MOD_ZIMAGE_FILE}" ] || [ -f "${MOD_RDGZ_FILE}" ]; then
|
if [[ -f "${ORI_ZIMAGE_FILE}" || -f "${ORI_RDGZ_FILE}" || -f "${MOD_ZIMAGE_FILE}" || -f "${MOD_RDGZ_FILE}" ]]; then
|
||||||
# Delete old files
|
# Delete old files
|
||||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
|
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
|
||||||
fi
|
fi
|
||||||
@@ -426,7 +426,7 @@ function make() {
|
|||||||
# Update PAT Data
|
# Update PAT Data
|
||||||
PAT_URL_CONF="$(readConfigKey "arc.paturl" "${USER_CONFIG_FILE}")"
|
PAT_URL_CONF="$(readConfigKey "arc.paturl" "${USER_CONFIG_FILE}")"
|
||||||
PAT_HASH_CONF="$(readConfigKey "arc.pathash" "${USER_CONFIG_FILE}")"
|
PAT_HASH_CONF="$(readConfigKey "arc.pathash" "${USER_CONFIG_FILE}")"
|
||||||
if [ -z "${PAT_URL_CONF}" ] || [ -z "${PAT_HASH_CONF}" ]; then
|
if [[ -z "${PAT_URL_CONF}" || -z "${PAT_HASH_CONF}" ]]; then
|
||||||
PAT_URL_CONF="0"
|
PAT_URL_CONF="0"
|
||||||
PAT_HASH_CONF="0"
|
PAT_HASH_CONF="0"
|
||||||
fi
|
fi
|
||||||
@@ -461,7 +461,7 @@ function make() {
|
|||||||
done
|
done
|
||||||
PAT_URL="$(cat "${TMP_PATH}/resp" | sed -n '1p')"
|
PAT_URL="$(cat "${TMP_PATH}/resp" | sed -n '1p')"
|
||||||
PAT_HASH="$(cat "${TMP_PATH}/resp" | sed -n '2p')"
|
PAT_HASH="$(cat "${TMP_PATH}/resp" | sed -n '2p')"
|
||||||
if [ "${PAT_HASH}" != "${PAT_HASH_CONF}" ] || [ ! -f "${ORI_ZIMAGE_FILE}" ] || [ ! -f "${ORI_RDGZ_FILE}" ]; then
|
if [[ "${PAT_HASH}" != "${PAT_HASH_CONF}" || ! -f "${ORI_ZIMAGE_FILE}" || ! -f "${ORI_RDGZ_FILE}" ]]; then
|
||||||
writeConfigKey "arc.paturl" "${PAT_URL}" "${USER_CONFIG_FILE}"
|
writeConfigKey "arc.paturl" "${PAT_URL}" "${USER_CONFIG_FILE}"
|
||||||
writeConfigKey "arc.pathash" "${PAT_HASH}" "${USER_CONFIG_FILE}"
|
writeConfigKey "arc.pathash" "${PAT_HASH}" "${USER_CONFIG_FILE}"
|
||||||
# Check for existing Files
|
# Check for existing Files
|
||||||
@@ -470,13 +470,13 @@ function make() {
|
|||||||
# Get new Files
|
# Get new Files
|
||||||
DSM_URL="https://raw.githubusercontent.com/AuxXxilium/arc-dsm/main/files/${MODEL}/${PRODUCTVER}/${PAT_HASH}.tar"
|
DSM_URL="https://raw.githubusercontent.com/AuxXxilium/arc-dsm/main/files/${MODEL}/${PRODUCTVER}/${PAT_HASH}.tar"
|
||||||
STATUS=$(curl --insecure -s -w "%{http_code}" -L "${DSM_URL}" -o "${DSM_FILE}")
|
STATUS=$(curl --insecure -s -w "%{http_code}" -L "${DSM_URL}" -o "${DSM_FILE}")
|
||||||
if [ $? -ne 0 ] || [ ${STATUS} -ne 200 ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "DSM Download" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "DSM Download" --aspect 18 \
|
||||||
--msgbox "No DSM Image found!\nTry Syno Link." 0 0
|
--msgbox "No DSM Image found!\nTry Syno Link." 0 0
|
||||||
# Grep PAT_URL
|
# Grep PAT_URL
|
||||||
PAT_FILE="${TMP_PATH}/${PAT_HASH}.pat"
|
PAT_FILE="${TMP_PATH}/${PAT_HASH}.pat"
|
||||||
STATUS=$(curl -k -w "%{http_code}" -L "${PAT_URL}" -o "${PAT_FILE}" --progress-bar)
|
STATUS=$(curl -k -w "%{http_code}" -L "${PAT_URL}" -o "${PAT_FILE}" --progress-bar)
|
||||||
if [ $? -ne 0 ] || [ ${STATUS} -ne 200 ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "DSM Download" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "DSM Download" --aspect 18 \
|
||||||
--msgbox "No DSM Image found!\ Exit." 0 0
|
--msgbox "No DSM Image found!\ Exit." 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -529,13 +529,13 @@ function make() {
|
|||||||
rm -rf "${UNTAR_PAT_PATH}"
|
rm -rf "${UNTAR_PAT_PATH}"
|
||||||
fi
|
fi
|
||||||
# Reset Bootcount if User rebuild DSM
|
# Reset Bootcount if User rebuild DSM
|
||||||
if [ ${BOOTCOUNT} -gt 0 ] || [ -z "${BOOTCOUNT}" ]; then
|
if [[ -z "${BOOTCOUNT}" || ${BOOTCOUNT} -gt 0 ]]; then
|
||||||
writeConfigKey "arc.bootcount" "0" "${USER_CONFIG_FILE}"
|
writeConfigKey "arc.bootcount" "0" "${USER_CONFIG_FILE}"
|
||||||
fi
|
fi
|
||||||
clear
|
clear
|
||||||
livepatch
|
livepatch
|
||||||
sleep 3
|
sleep 3
|
||||||
if [ -f "${ORI_ZIMAGE_FILE}" ] && [ -f "${ORI_RDGZ_FILE}" ] && [ -f "${MOD_ZIMAGE_FILE}" ] && [ -f "${MOD_RDGZ_FILE}" ]; then
|
if [[ -f "${ORI_ZIMAGE_FILE}" && -f "${ORI_RDGZ_FILE}" && -f "${MOD_ZIMAGE_FILE}" && -f "${MOD_RDGZ_FILE}" ]]; then
|
||||||
# Build is done
|
# Build is done
|
||||||
writeConfigKey "arc.version" "${ARC_VERSION}" "${USER_CONFIG_FILE}"
|
writeConfigKey "arc.version" "${ARC_VERSION}" "${USER_CONFIG_FILE}"
|
||||||
writeConfigKey "arc.builddone" "true" "${USER_CONFIG_FILE}"
|
writeConfigKey "arc.builddone" "true" "${USER_CONFIG_FILE}"
|
||||||
@@ -578,7 +578,7 @@ function editUserConfig() {
|
|||||||
MODEL="$(readConfigKey "model" "${USER_CONFIG_FILE}")"
|
MODEL="$(readConfigKey "model" "${USER_CONFIG_FILE}")"
|
||||||
PRODUCTVER="$(readConfigKey "productver" "${USER_CONFIG_FILE}")"
|
PRODUCTVER="$(readConfigKey "productver" "${USER_CONFIG_FILE}")"
|
||||||
SN="$(readConfigKey "arc.sn" "${USER_CONFIG_FILE}")"
|
SN="$(readConfigKey "arc.sn" "${USER_CONFIG_FILE}")"
|
||||||
if [ "${MODEL}" != "${OLDMODEL}" ] || [ "${PRODUCTVER}" != "${OLDPRODUCTVER}" ]; then
|
if [[ "${MODEL}" != "${OLDMODEL}" || "${PRODUCTVER}" != "${OLDPRODUCTVER}" ]]; then
|
||||||
# Delete old files
|
# Delete old files
|
||||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
|
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
|
||||||
fi
|
fi
|
||||||
@@ -794,13 +794,13 @@ function modulesMenu() {
|
|||||||
clear
|
clear
|
||||||
echo "Downloading ${URL}"
|
echo "Downloading ${URL}"
|
||||||
STATUS=$(curl -kLJO -w "%{http_code}" "${URL}" --progress-bar)
|
STATUS=$(curl -kLJO -w "%{http_code}" "${URL}" --progress-bar)
|
||||||
if [ $? -ne 0 ] || [ ${STATUS} -ne 200 ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Add external Module" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Add external Module" --aspect 18 \
|
||||||
--msgbox "ERROR: Check internet, URL or cache disk space" 0 0
|
--msgbox "ERROR: Check internet, URL or cache disk space" 0 0
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
KONAME=$(basename "$URL")
|
KONAME=$(basename "$URL")
|
||||||
if [ -n "${KONAME}" -a "${KONAME##*.}" = "ko" ]; then
|
if [[ -n "${KONAME}" && "${KONAME##*.}" = "ko" ]]; then
|
||||||
addToModules "${PLATFORM}" "${KVER}" "${KONAME}"
|
addToModules "${PLATFORM}" "${KVER}" "${KONAME}"
|
||||||
dialog --backtitle "$(backtitle)" --title "Add external Module" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Add external Module" --aspect 18 \
|
||||||
--msgbox "Module ${KONAME} added to ${PLATFORM}-${KVER}" 0 0
|
--msgbox "Module ${KONAME} added to ${PLATFORM}-${KVER}" 0 0
|
||||||
@@ -1274,7 +1274,7 @@ function backupMenu() {
|
|||||||
break
|
break
|
||||||
done
|
done
|
||||||
popd
|
popd
|
||||||
if [ -z "${IFTOOL}" ] || [ ! -f "${TMP_PATH}/${USER_FILE}" ]; then
|
if [[ -z "${IFTOOL}" || ! -f "${TMP_PATH}/${USER_FILE}" ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Restore Loader disk" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Restore Loader disk" --aspect 18 \
|
||||||
--msgbox "Not a valid .zip/.img.gz file, please try again!\n${USER_FILE}" 0 0
|
--msgbox "Not a valid .zip/.img.gz file, please try again!\n${USER_FILE}" 0 0
|
||||||
else
|
else
|
||||||
@@ -1471,7 +1471,7 @@ function backupMenu() {
|
|||||||
break
|
break
|
||||||
done
|
done
|
||||||
popd
|
popd
|
||||||
if [ -z "${IFTOOL}" ] || [ -z "${TMP_PATH}/${USER_FILE}" ]; then
|
if [[ -z "${IFTOOL}" || -z "${TMP_PATH}/${USER_FILE}" ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Restore Loader disk" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Restore Loader disk" --aspect 18 \
|
||||||
--msgbox "Not a valid .zip/.img.gz file, please try again!\n${USER_FILE}" 0 0
|
--msgbox "Not a valid .zip/.img.gz file, please try again!\n${USER_FILE}" 0 0
|
||||||
else
|
else
|
||||||
@@ -1630,7 +1630,7 @@ function updateMenu() {
|
|||||||
[ -z "${opts}" ] && return 1
|
[ -z "${opts}" ] && return 1
|
||||||
if [ ${opts} -eq 1 ]; then
|
if [ ${opts} -eq 1 ]; then
|
||||||
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||||
if [ $? -ne 0 ] || [ -z "${TAG}" ]; then
|
if [[ $? -ne 0 || -z "${TAG}" ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Upgrade Loader" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Upgrade Loader" --aspect 18 \
|
||||||
--msgbox "Error checking new version" 0 0
|
--msgbox "Error checking new version" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -1651,7 +1651,7 @@ function updateMenu() {
|
|||||||
fi
|
fi
|
||||||
# Download update file
|
# Download update file
|
||||||
STATUS=$(curl --insecure -w "%{http_code}" -L "https://github.com/AuxXxilium/arc/releases/download/${TAG}/arc-${TAG}.img.zip" -o "${TMP_PATH}/arc-${TAG}.img.zip")
|
STATUS=$(curl --insecure -w "%{http_code}" -L "https://github.com/AuxXxilium/arc/releases/download/${TAG}/arc-${TAG}.img.zip" -o "${TMP_PATH}/arc-${TAG}.img.zip")
|
||||||
if [ $? -ne 0 ] || [ ${STATUS} -ne 200 ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Upgrade Loader" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Upgrade Loader" --aspect 18 \
|
||||||
--msgbox "Error downloading update file" 0 0
|
--msgbox "Error downloading update file" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -1663,7 +1663,7 @@ function updateMenu() {
|
|||||||
--msgbox "Error extracting update file" 0 0
|
--msgbox "Error extracting update file" 0 0
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
if [ -f "${USER_CONFIG_FILE}" ] && [ "${CONFDONE}" = "true" ]; then
|
if [[ -f "${USER_CONFIG_FILE}" && "${CONFDONE}" = "true" ]]; then
|
||||||
GENHASH="$(cat "${USER_CONFIG_FILE}" | curl -s -F "content=<-" http://dpaste.com/api/v2/ | cut -c 19-)"
|
GENHASH="$(cat "${USER_CONFIG_FILE}" | curl -s -F "content=<-" http://dpaste.com/api/v2/ | cut -c 19-)"
|
||||||
dialog --backtitle "$(backtitle)" --title "Upgrade Loader" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Upgrade Loader" --aspect 18 \
|
||||||
--msgbox "Backup config successful!\nWrite down your Code: ${GENHASH}\n\nAfter Reboot use: Backup - Restore with Code." 0 0
|
--msgbox "Backup config successful!\nWrite down your Code: ${GENHASH}\n\nAfter Reboot use: Backup - Restore with Code." 0 0
|
||||||
@@ -1696,7 +1696,7 @@ function updateMenu() {
|
|||||||
[ -z "${opts}" ] && return 1
|
[ -z "${opts}" ] && return 1
|
||||||
if [ ${opts} -eq 1 ]; then
|
if [ ${opts} -eq 1 ]; then
|
||||||
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-addons/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-addons/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||||
if [ $? -ne 0 ] || [ -z "${TAG}" ]; then
|
if [[ $? -ne 0 || -z "${TAG}" ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Update Addons" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Addons" --aspect 18 \
|
||||||
--msgbox "Error checking new version" 0 0
|
--msgbox "Error checking new version" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -1711,7 +1711,7 @@ function updateMenu() {
|
|||||||
dialog --backtitle "$(backtitle)" --title "Update Addons" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Addons" --aspect 18 \
|
||||||
--infobox "Downloading ${TAG}" 0 0
|
--infobox "Downloading ${TAG}" 0 0
|
||||||
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-addons/releases/download/${TAG}/addons.zip" -o "${TMP_PATH}/addons.zip")
|
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-addons/releases/download/${TAG}/addons.zip" -o "${TMP_PATH}/addons.zip")
|
||||||
if [ $? -ne 0 ] || [ ${STATUS} -ne 200 ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Update Addons" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Addons" --aspect 18 \
|
||||||
--msgbox "Error downloading" 0 0
|
--msgbox "Error downloading" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -1747,7 +1747,7 @@ function updateMenu() {
|
|||||||
[ -z "${opts}" ] && return 1
|
[ -z "${opts}" ] && return 1
|
||||||
if [ ${opts} -eq 1 ]; then
|
if [ ${opts} -eq 1 ]; then
|
||||||
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-patches/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-patches/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||||
if [ $? -ne 0 ] || [ -z "${TAG}" ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Update Patches" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Patches" --aspect 18 \
|
||||||
--msgbox "Error checking new version" 0 0
|
--msgbox "Error checking new version" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -1762,7 +1762,7 @@ function updateMenu() {
|
|||||||
dialog --backtitle "$(backtitle)" --title "Update Patches" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Patches" --aspect 18 \
|
||||||
--infobox "Downloading ${TAG}" 0 0
|
--infobox "Downloading ${TAG}" 0 0
|
||||||
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-patches/releases/download/${TAG}/patches.zip" -o "${TMP_PATH}/patches.zip")
|
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-patches/releases/download/${TAG}/patches.zip" -o "${TMP_PATH}/patches.zip")
|
||||||
if [ $? -ne 0 ] || [] ${STATUS} -ne 200 ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Update Patches" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Patches" --aspect 18 \
|
||||||
--msgbox "Error downloading" 0 0
|
--msgbox "Error downloading" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -1789,7 +1789,7 @@ function updateMenu() {
|
|||||||
[ -z "${opts}" ] && return 1
|
[ -z "${opts}" ] && return 1
|
||||||
if [ ${opts} -eq 1 ]; then
|
if [ ${opts} -eq 1 ]; then
|
||||||
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-extensions/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-extensions/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||||
if [ $? -ne 0 ] || [ -z "${TAG}" ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Update Extensions" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Extensions" --aspect 18 \
|
||||||
--msgbox "Error checking new version" 0 0
|
--msgbox "Error checking new version" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -1804,7 +1804,7 @@ function updateMenu() {
|
|||||||
dialog --backtitle "$(backtitle)" --title "Update Extensions" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Extensions" --aspect 18 \
|
||||||
--infobox "Downloading ${TAG}" 0 0
|
--infobox "Downloading ${TAG}" 0 0
|
||||||
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-extensions/releases/download/${TAG}/extensions.zip" -o "${TMP_PATH}/extensions.zip")
|
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-extensions/releases/download/${TAG}/extensions.zip" -o "${TMP_PATH}/extensions.zip")
|
||||||
if [ $? -ne 0 ] || [ ${STATUS} -ne 200 ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Update Extensions" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Extensions" --aspect 18 \
|
||||||
--msgbox "Error downloading" 0 0
|
--msgbox "Error downloading" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -1840,7 +1840,7 @@ function updateMenu() {
|
|||||||
[ -z "${opts}" ] && return 1
|
[ -z "${opts}" ] && return 1
|
||||||
if [ ${opts} -eq 1 ]; then
|
if [ ${opts} -eq 1 ]; then
|
||||||
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-modules/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-modules/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||||
if [ $? -ne 0 ] || [ -z "${TAG}" ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Update Modules" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Modules" --aspect 18 \
|
||||||
--msgbox "Error checking new version" 0 0
|
--msgbox "Error checking new version" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -1855,7 +1855,7 @@ function updateMenu() {
|
|||||||
dialog --backtitle "$(backtitle)" --title "Update Modules" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Modules" --aspect 18 \
|
||||||
--infobox "Downloading ${TAG}" 0 0
|
--infobox "Downloading ${TAG}" 0 0
|
||||||
STATUS=$(curl -k -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-modules/releases/download/${TAG}/modules.zip" -o "${TMP_PATH}/modules.zip")
|
STATUS=$(curl -k -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-modules/releases/download/${TAG}/modules.zip" -o "${TMP_PATH}/modules.zip")
|
||||||
if [ $? -ne 0 ] || [ ${STATUS} -ne 200 ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Update Modules" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Modules" --aspect 18 \
|
||||||
--msgbox "Error downloading" 0 0
|
--msgbox "Error downloading" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -1893,7 +1893,7 @@ function updateMenu() {
|
|||||||
[ -z "${opts}" ] && return 1
|
[ -z "${opts}" ] && return 1
|
||||||
if [ ${opts} -eq 1 ]; then
|
if [ ${opts} -eq 1 ]; then
|
||||||
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-configs/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-configs/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||||
if [ $? -ne 0 ] || [ -z "${TAG}" ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Update Configs" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Configs" --aspect 18 \
|
||||||
--msgbox "Error checking new version" 0 0
|
--msgbox "Error checking new version" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -1908,7 +1908,7 @@ function updateMenu() {
|
|||||||
dialog --backtitle "$(backtitle)" --title "Update Configs" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Configs" --aspect 18 \
|
||||||
--infobox "Downloading ${TAG}" 0 0
|
--infobox "Downloading ${TAG}" 0 0
|
||||||
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-configs/releases/download/${TAG}/configs.zip" -o "${TMP_PATH}/configs.zip")
|
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-configs/releases/download/${TAG}/configs.zip" -o "${TMP_PATH}/configs.zip")
|
||||||
if [ $? -ne 0 ] || [] ${STATUS} -ne 200 ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Update Configs" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update Configs" --aspect 18 \
|
||||||
--msgbox "Error downloading" 0 0
|
--msgbox "Error downloading" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -1935,7 +1935,7 @@ function updateMenu() {
|
|||||||
[ -z "${opts}" ] && return 1
|
[ -z "${opts}" ] && return 1
|
||||||
if [ ${opts} -eq 1 ]; then
|
if [ ${opts} -eq 1 ]; then
|
||||||
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/redpill-lkm/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/redpill-lkm/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||||
if [ $? -ne 0 ] || [ -z "${TAG}" ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Update LKMs" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update LKMs" --aspect 18 \
|
||||||
--msgbox "Error checking new version" 0 0
|
--msgbox "Error checking new version" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -1950,7 +1950,7 @@ function updateMenu() {
|
|||||||
dialog --backtitle "$(backtitle)" --title "Update LKMs" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update LKMs" --aspect 18 \
|
||||||
--infobox "Downloading ${TAG}" 0 0
|
--infobox "Downloading ${TAG}" 0 0
|
||||||
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/redpill-lkm/releases/download/${TAG}/rp-lkms.zip" -o "${TMP_PATH}/rp-lkms.zip")
|
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/redpill-lkm/releases/download/${TAG}/rp-lkms.zip" -o "${TMP_PATH}/rp-lkms.zip")
|
||||||
if [ $? -ne 0 ] || [ ${STATUS} -ne 200 ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
dialog --backtitle "$(backtitle)" --title "Update LKMs" --aspect 18 \
|
dialog --backtitle "$(backtitle)" --title "Update LKMs" --aspect 18 \
|
||||||
--msgbox "Error downloading" 0 0
|
--msgbox "Error downloading" 0 0
|
||||||
return 1
|
return 1
|
||||||
@@ -2013,7 +2013,7 @@ function sysinfo() {
|
|||||||
ADDONSINFO="$(readConfigEntriesArray "addons" "${USER_CONFIG_FILE}")"
|
ADDONSINFO="$(readConfigEntriesArray "addons" "${USER_CONFIG_FILE}")"
|
||||||
EXTENSIONSINFO="$(readConfigEntriesArray "extensions" "${USER_CONFIG_FILE}")"
|
EXTENSIONSINFO="$(readConfigEntriesArray "extensions" "${USER_CONFIG_FILE}")"
|
||||||
REMAP="$(readConfigKey "arc.remap" "${USER_CONFIG_FILE}")"
|
REMAP="$(readConfigKey "arc.remap" "${USER_CONFIG_FILE}")"
|
||||||
if [ "${REMAP}" = "acports" ] || [ "${REMAP}" = "maxports" ]; then
|
if [[ "${REMAP}" = "acports" || "${REMAP}" = "maxports" ]]; then
|
||||||
PORTMAP="$(readConfigKey "cmdline.SataPortMap" "${USER_CONFIG_FILE}")"
|
PORTMAP="$(readConfigKey "cmdline.SataPortMap" "${USER_CONFIG_FILE}")"
|
||||||
DISKMAP="$(readConfigKey "cmdline.DiskIdxMap" "${USER_CONFIG_FILE}")"
|
DISKMAP="$(readConfigKey "cmdline.DiskIdxMap" "${USER_CONFIG_FILE}")"
|
||||||
elif [ "${REMAP}" = "remap" ]; then
|
elif [ "${REMAP}" = "remap" ]; then
|
||||||
@@ -2096,7 +2096,7 @@ function sysinfo() {
|
|||||||
TEXT+="\n Arc Modules loaded: \Zb${MODULESINFO}\Zn"
|
TEXT+="\n Arc Modules loaded: \Zb${MODULESINFO}\Zn"
|
||||||
TEXT+="\n\Z4>> Settings\Zn"
|
TEXT+="\n\Z4>> Settings\Zn"
|
||||||
TEXT+="\n Static IP: \Zb${STATICIP}\Zn"
|
TEXT+="\n Static IP: \Zb${STATICIP}\Zn"
|
||||||
if [ "${REMAP}" = "acports" ] || [ "${REMAP}" = "maxports" ]; then
|
if [[ "${REMAP}" = "acports" || "${REMAP}" = "maxports" ]]; then
|
||||||
TEXT+="\n SataPortMap | DiskIdxMap: \Zb${PORTMAP} | ${DISKMAP}\Zn"
|
TEXT+="\n SataPortMap | DiskIdxMap: \Zb${PORTMAP} | ${DISKMAP}\Zn"
|
||||||
elif [ "${REMAP}" = "remap" ]; then
|
elif [ "${REMAP}" = "remap" ]; then
|
||||||
TEXT+="\n SataRemap: \Zb${PORTMAP}\Zn"
|
TEXT+="\n SataRemap: \Zb${PORTMAP}\Zn"
|
||||||
@@ -2381,7 +2381,7 @@ function saveMenu() {
|
|||||||
function formatdisks() {
|
function formatdisks() {
|
||||||
rm -f "${TMP_PATH}/opts"
|
rm -f "${TMP_PATH}/opts"
|
||||||
while read -r POSITION NAME; do
|
while read -r POSITION NAME; do
|
||||||
[ -z "${POSITION}" ] || [ -z "${NAME}" ] && continue
|
[[ -z "${POSITION}" || -z "${NAME}" ]] && continue
|
||||||
echo "${POSITION}" | grep -q "${LOADER_DISK}" && continue
|
echo "${POSITION}" | grep -q "${LOADER_DISK}" && continue
|
||||||
echo "\"${POSITION}\" \"${NAME}\" \"off\"" >>"${TMP_PATH}/opts"
|
echo "\"${POSITION}\" \"${NAME}\" \"off\"" >>"${TMP_PATH}/opts"
|
||||||
done < <(ls -l /dev/disk/by-id/ | sed 's|../..|/dev|g' | grep -E "/dev/sd|/dev/nvme" | awk -F' ' '{print $NF" "$(NF-2)}' | sort -uk 1,1)
|
done < <(ls -l /dev/disk/by-id/ | sed 's|../..|/dev|g' | grep -E "/dev/sd|/dev/nvme" | awk -F' ' '{print $NF" "$(NF-2)}' | sort -uk 1,1)
|
||||||
@@ -2415,7 +2415,7 @@ function formatdisks() {
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
# let user delete Loader Boot Files
|
# let user delete Loader Boot Files
|
||||||
function resetLoader() {
|
function resetLoader() {
|
||||||
if [ -f "${ORI_ZIMAGE_FILE}" ] || [ -f "${ORI_RDGZ_FILE}" ] || [ -f "${MOD_ZIMAGE_FILE}" ] || [ -f "${MOD_RDGZ_FILE}" ]; then
|
if [[ -f "${ORI_ZIMAGE_FILE}" || -f "${ORI_RDGZ_FILE}" || -f "${MOD_ZIMAGE_FILE}" || -f "${MOD_RDGZ_FILE}" ]]; then
|
||||||
# Clean old files
|
# Clean old files
|
||||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}" "${USER_CONFIG_FILE}"
|
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}" "${USER_CONFIG_FILE}"
|
||||||
rm -rf "${UNTAR_PAT_PATH}"
|
rm -rf "${UNTAR_PAT_PATH}"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#0!/usr/bin/env bash
|
#0!/usr/bin/env bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
[ -z "${ARC_PATH}" ] || [ ! -d "${ARC_PATH}/include" ] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
[[ -z "${ARC_PATH}" || ! -d "${ARC_PATH}/include" ]] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||||
|
|
||||||
. ${ARC_PATH}/include/functions.sh
|
. ${ARC_PATH}/include/functions.sh
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ ZIMAGE_HASH="$(readConfigKey "zimage-hash" "${USER_CONFIG_FILE}")"
|
|||||||
ZIMAGE_HASH_CUR="$(sha256sum "${ORI_ZIMAGE_FILE}" | awk '{print $1}')"
|
ZIMAGE_HASH_CUR="$(sha256sum "${ORI_ZIMAGE_FILE}" | awk '{print $1}')"
|
||||||
RAMDISK_HASH="$(readConfigKey "ramdisk-hash" "${USER_CONFIG_FILE}")"
|
RAMDISK_HASH="$(readConfigKey "ramdisk-hash" "${USER_CONFIG_FILE}")"
|
||||||
RAMDISK_HASH_CUR="$(sha256sum "${ORI_RDGZ_FILE}" | awk '{print $1}')"
|
RAMDISK_HASH_CUR="$(sha256sum "${ORI_RDGZ_FILE}" | awk '{print $1}')"
|
||||||
if [ "${ZIMAGE_HASH_CUR}" != "${ZIMAGE_HASH}" ] || [ "${RAMDISK_HASH_CUR}" != "${RAMDISK_HASH}" ]; then
|
if [[ "${ZIMAGE_HASH_CUR}" != "${ZIMAGE_HASH}" || "${RAMDISK_HASH_CUR}" != "${RAMDISK_HASH}" ]]; then
|
||||||
echo -e "\033[1;34mDSM zImage/Ramdisk changed!\033[0m"
|
echo -e "\033[1;34mDSM zImage/Ramdisk changed!\033[0m"
|
||||||
echo
|
echo
|
||||||
livepatch
|
livepatch
|
||||||
@@ -64,7 +64,7 @@ echo -e "CPU: \033[1;37m${CPU}\033[0m"
|
|||||||
echo -e "MEM: \033[1;37m${RAM}\033[0m / \033[1;37m${RAMTOTAL} MB\033[0m"
|
echo -e "MEM: \033[1;37m${RAM}\033[0m / \033[1;37m${RAMTOTAL} MB\033[0m"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
if [ ! -f "${MODEL_CONFIG_PATH}/${MODEL}.yml" ] || [ -z "$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}]")" ]; then
|
if [[ ! -f "${MODEL_CONFIG_PATH}/${MODEL}.yml" || -z "$(readModelKey "${MODEL}" "productvers.[${PRODUCTVER}]")" ]]; then
|
||||||
echo -e "\033[1;33m*** The current version of Arc does not support booting ${MODEL}-${PRODUCTVER}, please rebuild. ***\033[0m"
|
echo -e "\033[1;33m*** The current version of Arc does not support booting ${MODEL}-${PRODUCTVER}, please rebuild. ***\033[0m"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -72,7 +72,7 @@ fi
|
|||||||
HASATA=0
|
HASATA=0
|
||||||
for D in $(lsblk -dpno NAME); do
|
for D in $(lsblk -dpno NAME); do
|
||||||
[ "${D}" = "${LOADER_DISK}" ] && continue
|
[ "${D}" = "${LOADER_DISK}" ] && continue
|
||||||
if [ "$(getBus "${D}")" = "sata" ] || [ "$(getBus "${D}")" = "scsi" ]; then
|
if [[ "$(getBus "${D}")" = "sata" || "$(getBus "${D}")" = "scsi" ]]; then
|
||||||
HASATA=1
|
HASATA=1
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
@@ -144,7 +144,7 @@ echo -e "\033[1;37mCmdline:\033[0m\n${CMDLINE_LINE}"
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
# Make Directboot persistent if DSM is installed
|
# Make Directboot persistent if DSM is installed
|
||||||
if [ "${DIRECTBOOT}" = "true" ] && [ ${BOOTCOUNT} -gt 0 ]; then
|
if [[ "${DIRECTBOOT}" = "true" && ${BOOTCOUNT} -gt 0 ]]; then
|
||||||
CMDLINE_DIRECT=$(echo ${CMDLINE_LINE} | sed 's/>/\\\\>/g') # Escape special chars
|
CMDLINE_DIRECT=$(echo ${CMDLINE_LINE} | sed 's/>/\\\\>/g') # Escape special chars
|
||||||
grub-editenv ${GRUB_PATH}/grubenv set dsm_cmdline="${CMDLINE_DIRECT}"
|
grub-editenv ${GRUB_PATH}/grubenv set dsm_cmdline="${CMDLINE_DIRECT}"
|
||||||
grub-editenv ${GRUB_PATH}/grubenv set default="direct"
|
grub-editenv ${GRUB_PATH}/grubenv set default="direct"
|
||||||
@@ -152,7 +152,7 @@ if [ "${DIRECTBOOT}" = "true" ] && [ ${BOOTCOUNT} -gt 0 ]; then
|
|||||||
writeConfigKey "arc.bootcount" "${BOOTCOUNT}" "${USER_CONFIG_FILE}"
|
writeConfigKey "arc.bootcount" "${BOOTCOUNT}" "${USER_CONFIG_FILE}"
|
||||||
echo -e "\033[1;34mDSM installed - Make Directboot persistent\033[0m"
|
echo -e "\033[1;34mDSM installed - Make Directboot persistent\033[0m"
|
||||||
exec reboot
|
exec reboot
|
||||||
elif [ "${DIRECTBOOT}" = "true" ] && [ ${BOOTCOUNT} -eq 0 ]; then
|
elif [[ "${DIRECTBOOT}" = "true" && ${BOOTCOUNT} -eq 0 ]]; then
|
||||||
CMDLINE_DIRECT=$(echo ${CMDLINE_LINE} | sed 's/>/\\\\>/g') # Escape special chars
|
CMDLINE_DIRECT=$(echo ${CMDLINE_LINE} | sed 's/>/\\\\>/g') # Escape special chars
|
||||||
grub-editenv ${GRUB_PATH}/grubenv set dsm_cmdline="${CMDLINE_DIRECT}"
|
grub-editenv ${GRUB_PATH}/grubenv set dsm_cmdline="${CMDLINE_DIRECT}"
|
||||||
grub-editenv ${GRUB_PATH}/grubenv set next_entry="direct"
|
grub-editenv ${GRUB_PATH}/grubenv set next_entry="direct"
|
||||||
@@ -174,7 +174,7 @@ elif [ "${DIRECTBOOT}" = "false" ]; then
|
|||||||
if [ "${STATICIP}" = "true" ]; then
|
if [ "${STATICIP}" = "true" ]; then
|
||||||
ARCIP="$(readConfigKey "arc.ip" "${USER_CONFIG_FILE}")"
|
ARCIP="$(readConfigKey "arc.ip" "${USER_CONFIG_FILE}")"
|
||||||
NETMASK="$(readConfigKey "arc.netmask" "${USER_CONFIG_FILE}")"
|
NETMASK="$(readConfigKey "arc.netmask" "${USER_CONFIG_FILE}")"
|
||||||
if [ "${ETHX[${N}]}" = "eth0" ] && [ -n "${ARCIP}" ] && [ ${BOOTCOUNT} -gt 0 ]; then
|
if [[ "${ETHX[${N}]}" = "eth0" && -n "${ARCIP}" && ${BOOTCOUNT} -gt 0 ]]; then
|
||||||
IP="${ARCIP}"
|
IP="${ARCIP}"
|
||||||
NETMASK=$(convert_netmask "${NETMASK}")
|
NETMASK=$(convert_netmask "${NETMASK}")
|
||||||
ip addr add ${IP}/${NETMASK} dev eth0
|
ip addr add ${IP}/${NETMASK} dev eth0
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ function installAddon() {
|
|||||||
[ "${AVAILABLE}" = "${PLATFORM}-${KVER}" ] && ACTIVATE="true" && break || ACTIVATE="false"
|
[ "${AVAILABLE}" = "${PLATFORM}-${KVER}" ] && ACTIVATE="true" && break || ACTIVATE="false"
|
||||||
done < <(readConfigEntriesArray "available-for" "${ADDONS_PATH}/${ADDON}/manifest.yml")
|
done < <(readConfigEntriesArray "available-for" "${ADDONS_PATH}/${ADDON}/manifest.yml")
|
||||||
# If has files to copy, copy it, else return error
|
# If has files to copy, copy it, else return error
|
||||||
[ ${HAS_FILES} -ne 1 ] || [ ${ACTIVATE} = "false" ] && return 1
|
[[ ${HAS_FILES} -ne 1 || ${ACTIVATE} = "false" ]] && return 1
|
||||||
cp -f "${TMP_PATH}/${ADDON}/install.sh" "${RAMDISK_PATH}/addons/${ADDON}.sh" 2>"${LOG_FILE}" || dieLog
|
cp -f "${TMP_PATH}/${ADDON}/install.sh" "${RAMDISK_PATH}/addons/${ADDON}.sh" 2>"${LOG_FILE}" || dieLog
|
||||||
chmod +x "${RAMDISK_PATH}/addons/${ADDON}.sh"
|
chmod +x "${RAMDISK_PATH}/addons/${ADDON}.sh"
|
||||||
[ -d ${TMP_PATH}/${ADDON}/root ] && (cp -rnf "${TMP_PATH}/${ADDON}/root/"* "${RAMDISK_PATH}/" 2>"${LOG_FILE}" || dieLog)
|
[ -d ${TMP_PATH}/${ADDON}/root ] && (cp -rnf "${TMP_PATH}/${ADDON}/root/"* "${RAMDISK_PATH}/" 2>"${LOG_FILE}" || dieLog)
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ function installExtension() {
|
|||||||
[ "${AVAILABLE}" = "${PLATFORM}-${KVER}" ] && ACTIVATE="true" && break || ACTIVATE="false"
|
[ "${AVAILABLE}" = "${PLATFORM}-${KVER}" ] && ACTIVATE="true" && break || ACTIVATE="false"
|
||||||
done < <(readConfigEntriesArray "available-for" "${EXTENSIONS_PATH}/${EXTENSION}/manifest.yml")
|
done < <(readConfigEntriesArray "available-for" "${EXTENSIONS_PATH}/${EXTENSION}/manifest.yml")
|
||||||
# If has files to copy, copy it, else return error
|
# If has files to copy, copy it, else return error
|
||||||
[ ${HAS_FILES} -ne 1 ] || [ ${ACTIVATE} = "false" ] && return 1
|
[[ ${HAS_FILES} -ne 1 || ${ACTIVATE} = "false" ]] && return 1
|
||||||
cp -f "${TMP_PATH}/${EXTENSION}/install.sh" "${RAMDISK_PATH}/addons/${EXTENSION}.sh" 2>"${LOG_FILE}" || dieLog
|
cp -f "${TMP_PATH}/${EXTENSION}/install.sh" "${RAMDISK_PATH}/addons/${EXTENSION}.sh" 2>"${LOG_FILE}" || dieLog
|
||||||
chmod +x "${RAMDISK_PATH}/addons/${EXTENSION}.sh"
|
chmod +x "${RAMDISK_PATH}/addons/${EXTENSION}.sh"
|
||||||
[ -d ${TMP_PATH}/${EXTENSION}/root ] && (cp -rnf "${TMP_PATH}/${EXTENSION}/root/"* "${RAMDISK_PATH}/" 2>"${LOG_FILE}" || dieLog)
|
[ -d ${TMP_PATH}/${EXTENSION}/root ] && (cp -rnf "${TMP_PATH}/${EXTENSION}/root/"* "${RAMDISK_PATH}/" 2>"${LOG_FILE}" || dieLog)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
[ -z "${ARC_PATH}" ] || [ ! -d "${ARC_PATH}/include" ] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
[[ -z "${ARC_PATH}" || ! -d "${ARC_PATH}/include" ]] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||||
|
|
||||||
. ${ARC_PATH}/include/consts.sh
|
. ${ARC_PATH}/include/consts.sh
|
||||||
. ${ARC_PATH}/include/configFile.sh
|
. ${ARC_PATH}/include/configFile.sh
|
||||||
@@ -333,11 +333,11 @@ function livepatch() {
|
|||||||
if [ ${FAIL} -eq 1 ]; then
|
if [ ${FAIL} -eq 1 ]; then
|
||||||
# Update Configs
|
# Update Configs
|
||||||
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-configs/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-configs/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||||
if [ $? -ne 0 ] || [ -z "${TAG}" ]; then
|
if [[ $? -ne 0 || -z "${TAG}" ]]; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-configs/releases/download/${TAG}/configs.zip" -o "${TMP_PATH}/configs.zip")
|
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-configs/releases/download/${TAG}/configs.zip" -o "${TMP_PATH}/configs.zip")
|
||||||
if [ $? -ne 0 ] || [] ${STATUS} -ne 200 ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
rm -rf "${MODEL_CONFIG_PATH}"
|
rm -rf "${MODEL_CONFIG_PATH}"
|
||||||
@@ -346,11 +346,11 @@ function livepatch() {
|
|||||||
rm -f "${TMP_PATH}/configs.zip"
|
rm -f "${TMP_PATH}/configs.zip"
|
||||||
# Update Patches
|
# Update Patches
|
||||||
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-patches/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
TAG="$(curl --insecure -s https://api.github.com/repos/AuxXxilium/arc-patches/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||||
if [ $? -ne 0 ] || [ -z "${TAG}" ]; then
|
if [[ $? -ne 0 || -z "${TAG}" ]]; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-patches/releases/download/${TAG}/patches.zip" -o "${TMP_PATH}/patches.zip")
|
STATUS=$(curl --insecure -s -w "%{http_code}" -L "https://github.com/AuxXxilium/arc-patches/releases/download/${TAG}/patches.zip" -o "${TMP_PATH}/patches.zip")
|
||||||
if [ $? -ne 0 ] || [] ${STATUS} -ne 200 ]; then
|
if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
rm -rf "${PATCH_PATH}"
|
rm -rf "${PATCH_PATH}"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
[ -z "${ARC_PATH}" ] || [ ! -d "${ARC_PATH}/include" ] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
[[ -z "${ARC_PATH}" || ! -d "${ARC_PATH}/include" ]] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||||
|
|
||||||
. ${ARC_PATH}/include/functions.sh
|
. ${ARC_PATH}/include/functions.sh
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ MACSYS="$(readConfigKey "arc.macsys" "${USER_CONFIG_FILE}")"
|
|||||||
if [ "${MACSYS}" = "custom" ]; then
|
if [ "${MACSYS}" = "custom" ]; then
|
||||||
MACR="$(cat /sys/class/net/eth0/address | sed 's/://g')"
|
MACR="$(cat /sys/class/net/eth0/address | sed 's/://g')"
|
||||||
MACA="$(readConfigKey "arc.mac1" "${USER_CONFIG_FILE}")"
|
MACA="$(readConfigKey "arc.mac1" "${USER_CONFIG_FILE}")"
|
||||||
if [ -n "${MACA}" ] && [ "${MACA}" != "${MACR}" ]; then
|
if [[ -n "${MACA}" && "${MACA}" != "${MACR}" ]]; then
|
||||||
MAC="${MACA:0:2}:${MACA:2:2}:${MACA:4:2}:${MACA:6:2}:${MACA:8:2}:${MACA:10:2}"
|
MAC="${MACA:0:2}:${MACA:2:2}:${MACA:4:2}:${MACA:6:2}:${MACA:8:2}:${MACA:10:2}"
|
||||||
echo "Setting eth0 MAC to ${MAC}"
|
echo "Setting eth0 MAC to ${MAC}"
|
||||||
ip link set dev eth0 address "${MAC}" >/dev/null 2>&1 &&
|
ip link set dev eth0 address "${MAC}" >/dev/null 2>&1 &&
|
||||||
@@ -87,7 +87,7 @@ BUS=$(getBus "${LOADER_DISK}")
|
|||||||
if [ "${BUS}" = "usb" ]; then
|
if [ "${BUS}" = "usb" ]; then
|
||||||
VID="0x$(udevadm info --query property --name "${LOADER_DISK}" | grep ID_VENDOR_ID | cut -d= -f2)"
|
VID="0x$(udevadm info --query property --name "${LOADER_DISK}" | grep ID_VENDOR_ID | cut -d= -f2)"
|
||||||
PID="0x$(udevadm info --query property --name "${LOADER_DISK}" | grep ID_MODEL_ID | cut -d= -f2)"
|
PID="0x$(udevadm info --query property --name "${LOADER_DISK}" | grep ID_MODEL_ID | cut -d= -f2)"
|
||||||
elif [ "${BUS}" != "sata" ] && [ "${BUS}" != "scsi" ] && [ "${BUS}" != "nvme" ]; then
|
elif [[ "${BUS}" != "sata" && "${BUS}" != "scsi" && "${BUS}" != "nvme" ]]; then
|
||||||
die "Loader disk is not USB or SATA/SCSI/NVME DoM"
|
die "Loader disk is not USB or SATA/SCSI/NVME DoM"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ for N in $(seq 0 $((${#ETHX[@]} - 1))); do
|
|||||||
if [ "${STATICIP}" = "true" ]; then
|
if [ "${STATICIP}" = "true" ]; then
|
||||||
ARCIP="$(readConfigKey "arc.ip" "${USER_CONFIG_FILE}")"
|
ARCIP="$(readConfigKey "arc.ip" "${USER_CONFIG_FILE}")"
|
||||||
NETMASK="$(readConfigKey "arc.netmask" "${USER_CONFIG_FILE}")"
|
NETMASK="$(readConfigKey "arc.netmask" "${USER_CONFIG_FILE}")"
|
||||||
if [ "${ETHX[${N}]}" = "eth0" ] && [ -n "${ARCIP}" ] && [ ${BOOTCOUNT} -gt 0 ]; then
|
if [[ "${ETHX[${N}]}" = "eth0" && -n "${ARCIP}" && ${BOOTCOUNT} -gt 0 ]]; then
|
||||||
IP="${ARCIP}"
|
IP="${ARCIP}"
|
||||||
NETMASK=$(convert_netmask "${NETMASK}")
|
NETMASK=$(convert_netmask "${NETMASK}")
|
||||||
ip addr add ${IP}/${NETMASK} dev eth0
|
ip addr add ${IP}/${NETMASK} dev eth0
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
[ -z "${ARC_PATH}" ] || [ ! -d "${ARC_PATH}/include" ] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
[[ -z "${ARC_PATH}" || ! -d "${ARC_PATH}/include" ]] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||||
|
|
||||||
. ${ARC_PATH}/include/functions.sh
|
. ${ARC_PATH}/include/functions.sh
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ if [ "${PRODUCTVERDSM}" != "${PRODUCTVER}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Sanity check
|
# Sanity check
|
||||||
[ -z "${PLATFORM}" ] || [ -z "${KVER}" ] && (die "ERROR: Configuration for Model ${MODEL} and Version ${PRODUCTVER} not found." | tee -a "${LOG_FILE}")
|
[[ -z "${PLATFORM}" || -z "${KVER}" ]] && (die "ERROR: Configuration for Model ${MODEL} and Version ${PRODUCTVER} not found." | tee -a "${LOG_FILE}")
|
||||||
|
|
||||||
declare -A SYNOINFO
|
declare -A SYNOINFO
|
||||||
declare -A ADDONS
|
declare -A ADDONS
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Based on code and ideas from @jumkey
|
# Based on code and ideas from @jumkey
|
||||||
|
|
||||||
[ -z "${ARC_PATH}" ] || [ ! -d "${ARC_PATH}/include" ] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
[[ -z "${ARC_PATH}" || ! -d "${ARC_PATH}/include" ]] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||||
|
|
||||||
. ${ARC_PATH}/include/functions.sh
|
. ${ARC_PATH}/include/functions.sh
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ SCRIPT_DIR=$(dirname $0)
|
|||||||
VMLINUX_MOD=${1}
|
VMLINUX_MOD=${1}
|
||||||
ZIMAGE_MOD=${2}
|
ZIMAGE_MOD=${2}
|
||||||
KVER_MAJOR=${KVER:0:1}
|
KVER_MAJOR=${KVER:0:1}
|
||||||
if [ ${KVER_MAJOR} -eq 4 ] || [ ${KVER_MAJOR} -eq 3 ]; then
|
if [[ ${KVER_MAJOR} -eq 4 || ${KVER_MAJOR} -eq 3 ]]; then
|
||||||
# Kernel version 4.x or 3.x (bromolow)
|
# Kernel version 4.x or 3.x (bromolow)
|
||||||
#zImage_head 16494
|
#zImage_head 16494
|
||||||
#payload(
|
#payload(
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
[ -z "${ARC_PATH}" ] || [ ! -d "${ARC_PATH}/include" ] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
[[ -z "${ARC_PATH}" || ! -d "${ARC_PATH}/include" ]] && ARC_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||||
|
|
||||||
. ${ARC_PATH}/include/functions.sh
|
. ${ARC_PATH}/include/functions.sh
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user