# HG changeset patch # User Alexis S. L. Carvalho # Date 1174963796 10800 # Node ID 4fd6f7e608944711320e415ef2f1a2632381c82a # Parent a04141f51056bb0a5c71637da6bd8e8516b3034d 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. diff -r a04141f51056 -r 4fd6f7e60894 tests/printenv.py --- /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 [exit] [output] +# +# - 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)