##// END OF EJS Templates
Turn make_filename into make_file, which returns a file handle.
Bryan O'Sullivan -
r729:626aa658 default
parent child Browse files
Show More
@@ -114,8 +114,11 b' def revrange(ui, repo, revs, revlog=None'
114 else:
114 else:
115 yield spec
115 yield spec
116
116
117 def make_filename(repo, r, pat, node=None,
117 def make_file(repo, r, pat, node=None,
118 total=None, seqno=None, revwidth=None):
118 total=None, seqno=None, revwidth=None, mode='wb'):
119 if pat == '-':
120 if 'w' in mode: return sys.stdout
121 else: return sys.stdin
119 node_expander = {
122 node_expander = {
120 'H': lambda: hg.hex(node),
123 'H': lambda: hg.hex(node),
121 'R': lambda: str(r.rev(node)),
124 'R': lambda: str(r.rev(node)),
@@ -149,7 +152,7 b' def make_filename(repo, r, pat, node=Non'
149 c = expander[c]()
152 c = expander[c]()
150 newname.append(c)
153 newname.append(c)
151 i += 1
154 i += 1
152 return ''.join(newname)
155 return open(''.join(newname), mode)
153 except KeyError, inst:
156 except KeyError, inst:
154 raise Abort("invalid format spec '%%%s' in output file name",
157 raise Abort("invalid format spec '%%%s' in output file name",
155 inst.args[0])
158 inst.args[0])
@@ -409,10 +412,7 b' def cat(ui, repo, file1, rev=None, **opt'
409 n = r.lookup(rev)
412 n = r.lookup(rev)
410 else:
413 else:
411 n = r.tip()
414 n = r.tip()
412 if opts['output'] and opts['output'] != '-':
415 fp = make_file(repo, r, opts['output'], node=n)
413 fp = open(make_filename(repo, r, opts['output'], node=n), 'wb')
414 else:
415 fp = sys.stdout
416 fp.write(r.read(n))
416 fp.write(r.read(n))
417
417
418 def clone(ui, source, dest=None, **opts):
418 def clone(ui, source, dest=None, **opts):
@@ -570,14 +570,11 b' def doexport(ui, repo, changeset, seqno,'
570 prev, other = repo.changelog.parents(node)
570 prev, other = repo.changelog.parents(node)
571 change = repo.changelog.read(node)
571 change = repo.changelog.read(node)
572
572
573 if opts['output'] and opts['output'] != '-':
573 fp = make_file(repo, repo.changelog, opts['output'],
574 outname = make_filename(repo, repo.changelog, opts['output'],
574 node=node, total=total, seqno=seqno,
575 node=node, total=total, seqno=seqno,
575 revwidth=revwidth)
576 revwidth=revwidth)
576 if fp != sys.stdout:
577 ui.note("Exporting patch to '%s'.\n" % outname)
577 ui.note("Exporting patch to '%s'.\n" % fp.name)
578 fp = open(outname, 'wb')
579 else:
580 fp = sys.stdout
581
578
582 fp.write("# HG changeset patch\n")
579 fp.write("# HG changeset patch\n")
583 fp.write("# User %s\n" % change[1])
580 fp.write("# User %s\n" % change[1])
General Comments 0
You need to be logged in to leave comments. Login now