woocommerce/plugins/woocommerce-blocks/bin/fix-package-lock.sh

77 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# Enable nicer messaging for build status.
BLUE_BOLD='\033[1;34m';
RED_BOLD='\033[1;31m';
COLOR_RESET='\033[0m';
GREEN_BOLD='\033[1;32m';
RED_BOLD='\033[1;31m';
YELLOW_BOLD='\033[1;33m';
error () {
echo -e "${RED_BOLD}$1${COLOR_RESET}\n";
exit 0;
}
status () {
echo -e "${BLUE_BOLD}$1${COLOR_RESET}\n"
}
success () {
echo -e "${GREEN_BOLD}$1${COLOR_RESET}\n"
}
warning () {
echo -e "${YELLOW_BOLD}$1${COLOR_RESET}\n"
}
[[ -z "$1" ]] && {
error "You must specify a branch to fix, for example: npm run fix-package-lock your/branch";
}
echo -e "${YELLOW_BOLD} ___ ___ ___
| | | |
|___|___|___|
| | | |
|___|___|___|
| | | |
|___|___|___|
FIX PACKAGE LOCK
================
This script will attempt to rebase a Renovate PR and update the package.lock file.
Usage: npm run fix-package-lock branch/name
${COLOR_RESET}"
echo -e "${RED_BOLD}BEFORE PROCEEDING\n=================
You should check the PR on GitHub to see if it already has conflicts with trunk.
If it does, use the checkbox in the PR to force Renovate to rebase it for you.
Once the PR has been rebased, you can run this script, and then do a squash merge on GitHub.${COLOR_RESET}"
printf "Ready to proceed? [y/N]: "
read -r PROCEED
echo
if [ "$(echo "${PROCEED:-n}" | tr "[:upper:]" "[:lower:]")" != "y" ]; then
exit
fi
git fetch
if ! git checkout $1
then
error "Unable to checkout branch";
else
success "Checked out branch"
fi
status "Removing package-lock.json...";
rm package-lock.json
status "Installing dependencies...";
npm cache verify
npm install
status "Comitting updated package-lock.json...";
git add package-lock.json
git commit -m 'update package-lock.json'
git push --force-with-lease
success "Done. Package Lock has been updated. 🎉"