Mercurial > hg > config
annotate python/quote.py @ 325:bc2d0d504270
preserve mode (could, in theory, take from script)
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Sat, 08 Jun 2013 08:42:21 -0700 |
parents | 2454d5a1728b |
children | a075f8a93183 |
rev | line source |
---|---|
271
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2 |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3 """ |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4 quote text |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
5 """ |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
6 |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
7 import sys |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
8 import textwrap |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
9 from subprocess import check_output as call |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
10 |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
11 def quote(text, prefix='> ', width=69): |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
12 """ |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
13 returns quoted text |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
14 - prefix: string to prepend quote |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
15 - width: final width (emacs wraps at 70) |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
16 """ |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
17 width -= len(prefix) # subtract the prefix |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
18 text = text.strip() # remove surrounding whitespace |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
19 lines = [] |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
20 for line in text.splitlines(): |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
21 line = line.strip() |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
22 lines.extend(textwrap.wrap(line, width)) |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
23 return '\n'.join(['%s%s' % (prefix, line) |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
24 for line in lines]) |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
25 |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
26 def main(args=sys.argv[1:]): |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
27 text = sys.stdin.read() |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
28 sys.stdout.write(quote(text)) |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
29 |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
30 if __name__ == '__main__': |
2454d5a1728b
add a email-esque quoting script
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
31 main() |