##// END OF EJS Templates
debugcommands: introduce new debugrequirements command...
debugcommands: introduce new debugrequirements command This for now just prints out the list of current requirements. In future this will be helpful in reading requirements from couple of sources, and checking which requirement comes from where. Differential Revision: https://phab.mercurial-scm.org/D8632

File last commit:

r43346:2372284d default
r45667:4a28f5e8 default
Show More
printenv.py
80 lines | 1.9 KiB | text/x-python | PythonLexer
Matt Mackall
tests: make printenv executable
r25477 #!/usr/bin/env python
#
Alexis S. L. Carvalho
Add tests/printenv.py...
r4285 # simple script to be used in hooks
#
# put something like this in the repo .hg/hgrc:
#
# [hooks]
Mads Kiilerich
tests: consistently use printenv.py the same MSYS/Windows-compatible way...
r17018 # changegroup = python "$TESTDIR/printenv.py" <hookname> [exit] [output]
Alexis S. L. Carvalho
Add tests/printenv.py...
r4285 #
# - <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.
#
Robert Stanca
py3: use absolute_import in printenv.py
r28944 from __future__ import absolute_import
Boris Feld
tests: update printenv.py argument parsing...
r41054 import argparse
Alexis S. L. Carvalho
Add tests/printenv.py...
r4285 import os
import sys
Patrick Mezard
tests: Windows compatibility fixes...
r7080 try:
import msvcrt
Augie Fackler
formatting: blacken the codebase...
r43346
Patrick Mezard
tests: Windows compatibility fixes...
r7080 msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
Dirkjan Ochtman
clean up trailing spaces, leading spaces in C
r7186 msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
Patrick Mezard
tests: Windows compatibility fixes...
r7080 except ImportError:
pass
Boris Feld
tests: update printenv.py argument parsing...
r41054 parser = argparse.ArgumentParser()
parser.add_argument("name", help="the hook name, used for display")
parser.add_argument(
"exitcode",
nargs="?",
default=0,
type=int,
help="the exit code for the hook",
)
parser.add_argument(
"out", nargs="?", default=None, help="where to write the output"
)
Boris Feld
test: introduce a new flag to display env variable line per line...
r41065 parser.add_argument(
"--line",
action="store_true",
help="print environment variables one per line instead of on a single line",
)
Boris Feld
tests: update printenv.py argument parsing...
r41054 args = parser.parse_args()
Alexis S. L. Carvalho
Add tests/printenv.py...
r4285
Boris Feld
tests: update printenv.py argument parsing...
r41054 if args.out is None:
out = sys.stdout
out = getattr(out, "buffer", out)
else:
out = open(args.out, "ab")
Alexis S. L. Carvalho
Add tests/printenv.py...
r4285
Patrick Mezard
printenv: filter empty environment variables for portability.
r4643 # variables with empty values may not exist on all platforms, filter
# them now for portability sake.
Augie Fackler
formatting: blacken the codebase...
r43346 env = [(k, v) for k, v in os.environ.items() if k.startswith("HG_") and v]
Alexis S. L. Carvalho
Add tests/printenv.py...
r4285 env.sort()
Boris Feld
tests: update printenv.py argument parsing...
r41054 out.write(b"%s hook: " % args.name.encode('ascii'))
Adrian Buehlmann
tests/printenv.py: eliminate trailing spaces on output
r16982 if os.name == 'nt':
filter = lambda x: x.replace('\\', '/')
else:
filter = lambda x: x
Boris Feld
test: introduce a new flag to display env variable line per line...
r41065
Augie Fackler
formatting: blacken the codebase...
r43346 vars = [
b"%s=%s" % (k.encode('ascii'), filter(v).encode('ascii')) for k, v in env
]
Boris Feld
test: introduce a new flag to display env variable line per line...
r41065
# Print variables on out
if not args.line:
out.write(b" ".join(vars))
else:
for var in vars:
out.write(var)
out.write(b"\n")
Pulkit Goyal
py3: use bytes in tests/printenv.py...
r38123 out.write(b"\n")
Alexis S. L. Carvalho
Add tests/printenv.py...
r4285 out.close()
Boris Feld
tests: update printenv.py argument parsing...
r41054 sys.exit(args.exitcode)