212 raise util.Abort(_("invalid format spec '%%%s' in output file name") % |
212 raise util.Abort(_("invalid format spec '%%%s' in output file name") % |
213 inst.args[0]) |
213 inst.args[0]) |
214 |
214 |
215 def make_file(repo, pat, node=None, |
215 def make_file(repo, pat, node=None, |
216 total=None, seqno=None, revwidth=None, mode='wb', pathname=None): |
216 total=None, seqno=None, revwidth=None, mode='wb', pathname=None): |
|
217 |
|
218 writable = 'w' in mode or 'a' in mode |
|
219 |
217 if not pat or pat == '-': |
220 if not pat or pat == '-': |
218 return 'w' in mode and sys.stdout or sys.stdin |
221 return writable and sys.stdout or sys.stdin |
219 if hasattr(pat, 'write') and 'w' in mode: |
222 if hasattr(pat, 'write') and writable: |
220 return pat |
223 return pat |
221 if hasattr(pat, 'read') and 'r' in mode: |
224 if hasattr(pat, 'read') and 'r' in mode: |
222 return pat |
225 return pat |
223 return open(make_filename(repo, pat, node, total, seqno, revwidth, |
226 return open(make_filename(repo, pat, node, total, seqno, revwidth, |
224 pathname), |
227 pathname), |