printenv.py
44 lines
| 1.1 KiB
| text/x-python
|
PythonLexer
/ tests / printenv.py
Alexis S. L. Carvalho
|
r4285 | # simple script to be used in hooks | ||
# copy it to the current directory when the test starts: | ||||
# | ||||
# cp "$TESTDIR"/printenv.py . | ||||
# | ||||
# put something like this in the repo .hg/hgrc: | ||||
# | ||||
# [hooks] | ||||
# changegroup = python ../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 | ||||
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") | ||||
env = [v for v in os.environ if v.startswith("HG_")] | ||||
env.sort() | ||||
# edit the variable part of the variable | ||||
url = os.environ.get("HG_URL", "") | ||||
if url.startswith("file:"): | ||||
os.environ["HG_URL"] = "file:" | ||||
elif url.startswith("remote:http"): | ||||
os.environ["HG_URL"] = "remote:http" | ||||
out.write("%s hook: " % name) | ||||
for v in env: | ||||
out.write("%s=%s " % (v, os.environ[v])) | ||||
out.write("\n") | ||||
out.close() | ||||
sys.exit(exitcode) | ||||