vaultwarden-web/scripts/generate_patch_file.sh
2024-08-06 22:00:08 +02:00

48 lines
1.8 KiB
Bash
Executable file

#!/usr/bin/env bash
set -o pipefail -o errexit
BASEDIR=$(RL=$(readlink -n "$0"); SP="${RL:-$0}"; dirname "$(cd "$(dirname "${SP}")"; pwd)/$(basename "${SP}")")
# Error handling
handle_error() {
read -n1 -r -p "FAILED: line $1, exit code $2. Press any key to exit..." _
exit 1
}
trap 'handle_error $LINENO $?' ERR
# Load default script environment variables
# shellcheck source=.script_env
. "${BASEDIR}/.script_env"
pushd "${VAULT_FOLDER}"
VAULT_VERSION=$(get_web_vault_version)
# Check if the vault versions starts with 20 and isn't a 40 char hash
if [[ ${VAULT_VERSION} = 20* ]] && [ ${#VAULT_VERSION} -ne 40 ]; then
VAULT_VERSION="v${VAULT_VERSION}"
fi
PATCH_FILENAME="${VAULT_VERSION}.patch"
if [ "$(git status --porcelain | wc -l)" -ge 1 ]; then
git --no-pager diff --no-color --minimal --abbrev=10 -- . \
':!package-lock.json' \
':!apps/web/src/favicon.ico' \
':!apps/web/src/images/logo-dark@2x.png' \
':!apps/web/src/images/logo-white@2x.png' \
':!apps/web/src/images/icon-white.png' \
':!apps/web/src/images/icons/android-chrome-192x192.png' \
':!apps/web/src/images/icons/android-chrome-512x512.png' \
':!apps/web/src/images/icons/apple-touch-icon.png' \
':!apps/web/src/images/icons/favicon-16x16.png' \
':!apps/web/src/images/icons/favicon-32x32.png' \
':!apps/web/src/images/icons/mstile-150x150.png' \
':!apps/web/src/images/icons/safari-pinned-tab.svg' \
':!apps/web/src/app/admin-console/icons/admin-console-logo.ts' \
':!apps/web/src/app/layouts/password-manager-logo.ts' \
':!bitwarden_license/' \
> "../patches/${PATCH_FILENAME}"
echo "Patch has been created here: patches/${PATCH_FILENAME}"
else
echo "No changes found, skip generating a patch file."
fi
popd