mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
1c315e5afa
Summary: Requiring that developers use the run-tests from the core hg repo has some downsides: 1) It forces the tests to run against whatever version of Mercurial I have checked out right now. I usually want to run tests against my installed Mercurial (since we're likely to deploy a new fb-hgext without a new hg). 2) It makes it harder for people to contribute. Someone wrote a new extension, and in order for them to test it, I have to explain how to checkout hg and how to run tests using the hg run-tests and first they must checkout the rev we have deployed, not @. Test Plan: Ran the tests Reviewers: pyd, cdelahousse, #sourcecontrol Subscribers: ps Differential Revision: https://phabricator.fb.com/D2632574
52 lines
1.3 KiB
Python
Executable File
52 lines
1.3 KiB
Python
Executable File
#!/usr/bin/env python
|
|
#
|
|
# simple script to be used in hooks
|
|
#
|
|
# put something like this in the repo .hg/hgrc:
|
|
#
|
|
# [hooks]
|
|
# changegroup = python "$TESTDIR/printenv.py" <hookname> [exit] [output]
|
|
#
|
|
# - <hookname> is a mandatory argument (e.g. "changegroup")
|
|
# - [exit] is the exit code of the hook (default: 0)
|
|
# - [output] is the name of the output file (default: use sys.stdout)
|
|
# the file will be opened in append mode.
|
|
#
|
|
import os
|
|
import sys
|
|
|
|
try:
|
|
import msvcrt
|
|
msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
|
|
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
|
|
msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
|
|
except ImportError:
|
|
pass
|
|
|
|
exitcode = 0
|
|
out = sys.stdout
|
|
|
|
name = sys.argv[1]
|
|
if len(sys.argv) > 2:
|
|
exitcode = int(sys.argv[2])
|
|
if len(sys.argv) > 3:
|
|
out = open(sys.argv[3], "ab")
|
|
|
|
# variables with empty values may not exist on all platforms, filter
|
|
# them now for portability sake.
|
|
env = [(k, v) for k, v in os.environ.iteritems()
|
|
if k.startswith("HG_") and v]
|
|
env.sort()
|
|
|
|
out.write("%s hook: " % name)
|
|
if os.name == 'nt':
|
|
filter = lambda x: x.replace('\\', '/')
|
|
else:
|
|
filter = lambda x: x
|
|
vars = ["%s=%s" % (k, filter(v)) for k, v in env]
|
|
out.write(" ".join(vars))
|
|
out.write("\n")
|
|
out.close()
|
|
|
|
sys.exit(exitcode)
|