Mercurial > hg
comparison tests/printenv.py @ 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 | |
children | a39cec1d5cb8 |
comparison
equal
deleted
inserted
replaced
4284:a04141f51056 | 4285:4fd6f7e60894 |
---|---|
1 # simple script to be used in hooks | |
2 # copy it to the current directory when the test starts: | |
3 # | |
4 # cp "$TESTDIR"/printenv.py . | |
5 # | |
6 # put something like this in the repo .hg/hgrc: | |
7 # | |
8 # [hooks] | |
9 # changegroup = python ../printenv.py <hookname> [exit] [output] | |
10 # | |
11 # - <hookname> is a mandatory argument (e.g. "changegroup") | |
12 # - [exit] is the exit code of the hook (default: 0) | |
13 # - [output] is the name of the output file (default: use sys.stdout) | |
14 # the file will be opened in append mode. | |
15 # | |
16 import os | |
17 import sys | |
18 | |
19 exitcode = 0 | |
20 out = sys.stdout | |
21 | |
22 name = sys.argv[1] | |
23 if len(sys.argv) > 2: | |
24 exitcode = int(sys.argv[2]) | |
25 if len(sys.argv) > 3: | |
26 out = open(sys.argv[3], "ab") | |
27 | |
28 env = [v for v in os.environ if v.startswith("HG_")] | |
29 env.sort() | |
30 | |
31 # edit the variable part of the variable | |
32 url = os.environ.get("HG_URL", "") | |
33 if url.startswith("file:"): | |
34 os.environ["HG_URL"] = "file:" | |
35 elif url.startswith("remote:http"): | |
36 os.environ["HG_URL"] = "remote:http" | |
37 | |
38 out.write("%s hook: " % name) | |
39 for v in env: | |
40 out.write("%s=%s " % (v, os.environ[v])) | |
41 out.write("\n") | |
42 out.close() | |
43 | |
44 sys.exit(exitcode) |