From 82ea41842389a926be2943d7bc413459c075d916 Mon Sep 17 00:00:00 2001 From: FreddleSpl0it <75116288+FreddleSpl0it@users.noreply.github.com> Date: Mon, 9 Mar 2026 15:13:36 +0100 Subject: [PATCH] Extend --dev flag to skip _modules update --- update.sh | 65 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 24 deletions(-) diff --git a/update.sh b/update.sh index 74eb8ff2..3e53d213 100755 --- a/update.sh +++ b/update.sh @@ -19,30 +19,48 @@ if [ ! -f "${PWD}/mailcow.conf" ]; then fi BRANCH="$(cd "${SCRIPT_DIR}" && git rev-parse --abbrev-ref HEAD)" +# Check for --dev flag early to skip _modules update +for arg in "$@"; do + if [[ "$arg" == "--dev" || "$arg" == "-d" ]]; then + echo -e "\e[32mRunning in Developer mode...\e[0m" + DEV=y + break + fi +done + MODULE_DIR="${SCRIPT_DIR}/_modules" -# Calculate hash before fetch -if [[ -d "${MODULE_DIR}" && -n "$(ls -A "${MODULE_DIR}" 2>/dev/null)" ]]; then - MODULES_HASH_BEFORE=$(find "${MODULE_DIR}" -type f -exec sha256sum {} \; 2>/dev/null | sort | sha256sum | awk '{print $1}') + +if [ ! "$DEV" ]; then + # Calculate hash before fetch + if [[ -d "${MODULE_DIR}" && -n "$(ls -A "${MODULE_DIR}" 2>/dev/null)" ]]; then + MODULES_HASH_BEFORE=$(find "${MODULE_DIR}" -type f -exec sha256sum {} \; 2>/dev/null | sort | sha256sum | awk '{print $1}') + else + MODULES_HASH_BEFORE="EMPTY" + fi + + echo -e "\e[33mFetching latest _modules from origin/${BRANCH}…\e[0m" + git fetch origin "${BRANCH}" + git checkout "origin/${BRANCH}" -- _modules + + if [[ ! -d "${MODULE_DIR}" || -z "$(ls -A "${MODULE_DIR}")" ]]; then + echo -e "\e[31mError: _modules is still missing or empty after fetch!\e[0m" + exit 2 + fi + + # Calculate hash after fetch + MODULES_HASH_AFTER=$(find "${MODULE_DIR}" -type f -exec sha256sum {} \; 2>/dev/null | sort | sha256sum | awk '{print $1}') + + # Check if modules changed + if [[ "${MODULES_HASH_BEFORE}" != "${MODULES_HASH_AFTER}" ]]; then + echo -e "\e[33m_modules have been updated. Please restart the update script.\e[0m" + exit 2 + fi else - MODULES_HASH_BEFORE="EMPTY" -fi - -echo -e "\e[33mFetching latest _modules from origin/${BRANCH}…\e[0m" -git fetch origin "${BRANCH}" -git checkout "origin/${BRANCH}" -- _modules - -if [[ ! -d "${MODULE_DIR}" || -z "$(ls -A "${MODULE_DIR}")" ]]; then - echo -e "\e[31mError: _modules is still missing or empty after fetch!\e[0m" - exit 2 -fi - -# Calculate hash after fetch -MODULES_HASH_AFTER=$(find "${MODULE_DIR}" -type f -exec sha256sum {} \; 2>/dev/null | sort | sha256sum | awk '{print $1}') - -# Check if modules changed -if [[ "${MODULES_HASH_BEFORE}" != "${MODULES_HASH_AFTER}" ]]; then - echo -e "\e[33m_modules have been updated. Please restart the update script.\e[0m" - exit 2 + echo -e "\e[33mDeveloper mode: Skipping _modules update from git\e[0m" + if [[ ! -d "${MODULE_DIR}" || -z "$(ls -A "${MODULE_DIR}")" ]]; then + echo -e "\e[31mError: _modules directory is missing or empty!\e[0m" + exit 2 + fi fi source _modules/scripts/core.sh @@ -151,8 +169,7 @@ while (($#)); do FORCE=y ;; -d|--dev) - echo -e "\e[32mRunning in Developer mode...\e[0m" - DEV=y + # Already handled at the top of the script before _modules update ;; --legacy) CURRENT_BRANCH="$(cd "${SCRIPT_DIR}"; git rev-parse --abbrev-ref HEAD)"