mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2026-11-11 02:41:33 +00:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
18bc6dc98d | ||
|
|
9825c8d290 |
@@ -18,6 +18,18 @@ if [ ! -f "${PWD}/mailcow.conf" ]; then
|
||||
fi
|
||||
fi
|
||||
BRANCH="$(cd "${SCRIPT_DIR}" && git rev-parse --abbrev-ref HEAD)"
|
||||
UPDATE_ARGS=("$@")
|
||||
SCRIPT_HASH="$(sha256sum "${SCRIPT_DIR}/update.sh" | awk '{print $1}')"
|
||||
|
||||
restart_update_script() {
|
||||
if [[ "${MAILCOW_UPDATE_RESTARTS:-0}" -ge 3 ]]; then
|
||||
echo -e "\e[31mupdate.sh keeps changing, please run it again.\e[0m"
|
||||
exit 2
|
||||
fi
|
||||
export MAILCOW_UPDATE_RESTARTS=$(( ${MAILCOW_UPDATE_RESTARTS:-0} + 1 ))
|
||||
echo -e "\e[33m$1, restarting the update script...\e[0m"
|
||||
exec "${SCRIPT_DIR}/update.sh" "${UPDATE_ARGS[@]}"
|
||||
}
|
||||
|
||||
# Check for --dev flag early to skip _modules update
|
||||
for arg in "$@"; do
|
||||
@@ -38,9 +50,9 @@ if [ ! "$DEV" ]; then
|
||||
MODULES_HASH_BEFORE="EMPTY"
|
||||
fi
|
||||
|
||||
echo -e "\e[33mFetching latest _modules from origin/${BRANCH}…\e[0m"
|
||||
echo -e "\e[33mFetching latest _modules and update.sh from origin/${BRANCH}…\e[0m"
|
||||
git fetch origin "${BRANCH}"
|
||||
git checkout "origin/${BRANCH}" -- _modules
|
||||
git checkout "origin/${BRANCH}" -- _modules update.sh
|
||||
|
||||
if [[ ! -d "${MODULE_DIR}" || -z "$(ls -A "${MODULE_DIR}")" ]]; then
|
||||
echo -e "\e[31mError: _modules is still missing or empty after fetch!\e[0m"
|
||||
@@ -50,10 +62,10 @@ if [ ! "$DEV" ]; then
|
||||
# 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
|
||||
# Check if modules or the script changed
|
||||
if [[ "${MODULES_HASH_BEFORE}" != "${MODULES_HASH_AFTER}" || "$(sha256sum "${SCRIPT_DIR}/update.sh" | awk '{print $1}')" != "${SCRIPT_HASH}" ]]; then
|
||||
chmod +x "${SCRIPT_DIR}/update.sh"
|
||||
restart_update_script "update.sh or _modules have been updated"
|
||||
fi
|
||||
else
|
||||
echo -e "\e[33mDeveloper mode: Skipping _modules update from git\e[0m"
|
||||
@@ -344,15 +356,12 @@ elif [ "$NEW_BRANCH" == "legacy" ] && [ "$CURRENT_BRANCH" != "legacy" ]; then
|
||||
fi
|
||||
|
||||
if [ ! "$DEV" ]; then
|
||||
EXIT_COUNT=0
|
||||
echo -e "\e[32mChecking for newer update script...\e[0m"
|
||||
SHA1_1="$(sha1sum update.sh)"
|
||||
git fetch origin
|
||||
git checkout "origin/${BRANCH}" -- update.sh
|
||||
SHA1_2="$(sha1sum update.sh)"
|
||||
if [[ "${SHA1_1}" != "${SHA1_2}" ]]; then
|
||||
if [[ "$(sha256sum update.sh | awk '{print $1}')" != "${SCRIPT_HASH}" ]]; then
|
||||
chmod +x update.sh
|
||||
EXIT_COUNT+=1
|
||||
restart_update_script "update.sh has been updated"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
Reference in new issue
Block a user