##// END OF EJS Templates
transaction: issue "new obsmarkers" message at the end of the transaction...
transaction: issue "new obsmarkers" message at the end of the transaction Instead of making bundle2 code responsible for this, it seems better to have it handled and the transaction level. First, it means the message will be more consistently printed. Second it means we won't spam the message over and over if the data arrive in multiple piece. Third, we are planning to move other similar message at the same level (for the same reason) so having them all at the same location will help us to control the order they are displayed.

File last commit:

r41065:73da729c default
r43164:38392d5b default
Show More
printenv.py
79 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
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
printenv: port to python3...
r36268 env = [(k, v) for k, v in os.environ.items()
Patrick Mezard
printenv: filter empty environment variables for portability.
r4643 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
Pulkit Goyal
py3: use bytes in tests/printenv.py...
r38123 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)