Mercurial > hg
changeset 4285:4fd6f7e60894
Add tests/printenv.py
This is a small script that can be used as a hook to print the
HG_* environment variables without relying on the shell.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Mon, 26 Mar 2007 23:49:56 -0300 |
parents | a04141f51056 |
children | 949516072388 |
files | tests/printenv.py |
diffstat | 1 files changed, 44 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/printenv.py Mon Mar 26 23:49:56 2007 -0300 @@ -0,0 +1,44 @@ +# 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)