Mercurial > hg-stable
view contrib/phab-refresh-stack.sh @ 51935:159854151f0f
statichttprepo: use a context manager to handle a file descriptor
I'm not sure if this should be reduced to `vfs.exists()`. That would seem to be
equivalent code (since the result of the read is ignored, so we can't tell if
the file actually has content, which has been the state of things going back to
98b6c3dde237), but this is at least safer file descriptor handling.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Wed, 25 Sep 2024 00:52:44 -0400 |
parents | fba2d7fab11e |
children |
line wrap: on
line source
#!/bin/bash set -eu if [[ "$PHABRICATOR_TOKEN" == "NO-PHAB" ]]; then echo 'Skipping Phabricator Step' >&2 exit 0 fi revision_in_stack=`hg log \ --rev '.#stack and ::. and topic()' \ -T '\nONE-REV\n' \ | grep 'ONE-REV' | wc -l` revision_on_phab=`hg log \ --rev '.#stack and ::. and topic() and desc("re:\nDifferential Revision: [^\n]+D\d+$")'\ -T '\nONE-REV\n' \ | grep 'ONE-REV' | wc -l` if [[ $revision_in_stack -eq 0 ]]; then echo "stack is empty" >&2 exit 0 fi if [[ $revision_on_phab -eq 0 ]]; then echo "no tracked diff in this stack" >&2 exit 0 fi if [[ $revision_on_phab -lt $revision_in_stack ]]; then echo "not all stack changesets (${revision_in_stack}) have matching Phabricator Diff (${revision_on_phab})" >&2 exit 2 fi if [[ "$PHABRICATOR_TOKEN" == "" ]]; then echo 'missing $PHABRICATOR_TOKEN variable' >&2 echo '(use PHABRICATOR_TOKEN="NO-PHAB" to disable this step)' >&2 exit 2 fi hg \ --config extensions.phabricator= \ --config phabricator.url=https://phab.mercurial-scm.org/ \ --config phabricator.callsign=HG \ --config auth.phabricator.schemes=https \ --config auth.phabricator.prefix=phab.mercurial-scm.org \ --config auth.phabricator.phabtoken=$PHABRICATOR_TOKEN \ phabsend --rev '.#stack and ::. and topic()' \ "$@"