blob: 45458713e5cead41067cb6fd8e30c4971c6087ef [file] [log] [blame]
#!/bin/bash
roll_deps() {
STEP="roll-deps" &&
REVIEWERS=$(grep -E -v "^$|#" third_party/expat/OWNERS | paste -s -d, -)
roll-dep -r "${REVIEWERS}" --roll-to origin/upstream/master "$@" src/third_party/expat/src/
}
update_readme() {
STEP="update README.chromium" &&
EXPAT_VERSION=$(git -C third_party/expat/src/ describe --long) &&
EXPAT_COMMIT=$(git -C third_party/expat/src/ rev-parse HEAD) &&
EXPAT_DATE=$(date "+%Y%m%d") &&
EXPAT_CPE_VERSION=$(echo ${EXPAT_VERSION} | sed -r -e's/^R_([0-9]+)_([0-9]+)_([0-9]+)-[0-9]+-g[0-9a-f]+$/\1.\2.\3/') &&
[ ${EXPAT_VERSION} != ${EXPAT_CPE_VERSION} ] &&
sed -i'' -e "s/^Version: .*\$/Version: ${EXPAT_VERSION}/" third_party/expat/README.chromium &&
sed -i'' -e "s@^CPEPrefix: cpe:/a:libexpat:expat:.*\$@CPEPrefix: cpe:/a:libexpat:expat:${EXPAT_CPE_VERSION}@" third_party/expat/README.chromium &&
sed -i'' -e "s/^Date: .*\$/Date: ${EXPAT_DATE}/" third_party/expat/README.chromium &&
sed -i'' -e "s/^Revision: .*\$/Revision: ${EXPAT_COMMIT}/" third_party/expat/README.chromium &&
git add third_party/expat/README.chromium
}
previous_rev() {
STEP="previous revision" &&
PREVIOUS_EXPAT_REV=$(git grep "'libexpat_revision':" HEAD~1 -- DEPS | grep -Eho "[0-9a-fA-F]{32}")
}
check_added_deleted_files() {
previous_rev &&
STEP="check for added or deleted files since last libexpat revision" &&
ADDED_FILES=$(git -C third_party/expat/src/ diff --diff-filter=A --name-only ${PREVIOUS_EXPAT_REV} -- src/ | paste -s -d, -) &&
DELETED_FILES=$(git -C third_party/expat/src/ diff --diff-filter=D --name-only ${PREVIOUS_EXPAT_REV} -- src/ | paste -s -d, -) &&
RENAMED_FILES=$(git -C third_party/expat/src/ diff --diff-filter=R --name-only ${PREVIOUS_EXPAT_REV} -- src/ | paste -s -d, -) &&
if [ -n "$ADDED_FILES" ]; then echo "Added files detected: " $ADDED_FILES; fi &&
if [ -n "$DELETED_FILES" ]; then echo "Deleted files detected" $DELETED_FILES; fi &&
if [ -n "$RENAMED_FILES" ]; then echo "Renamed files detected" $RENAMED_FILES; fi &&
if [ -n "$ADDED_FILES" ] || [ -n "$DELETED_FILES" ] || [ -n "$RENAMED_FILES" ]; then echo -e "\nPlease update src/third_party/expat/BUILD.gn before continuing."; fi
}
commit() {
STEP="commit" &&
git commit --quiet --amend --no-edit
}
update_expat_config_h() {
STEP="update expat config.h" &&
( cd third_party/expat/src/expat &&
./buildconf.sh &&
./configure) &&
cp third_party/expat/src/expat/expat_config.h third_party/expat/include/expat_config/ &&
patch -d third_party/expat -p3 < third_party/expat/0001-Do-not-claim-getrandom.patch &&
git add third_party/expat/include/expat_config/expat_config.h
}
roll_deps "$@" &&
update_readme &&
update_expat_config_h &&
check_added_deleted_files &&
commit ||
{ echo "Failed step ${STEP}"; exit 1; }