Mercurial > hg > config
annotate python/quote.py @ 929:7c4be71a560b default tip
remove old aliases
| author | Jeff Hammel <k0scist@gmail.com> | 
|---|---|
| date | Mon, 20 Oct 2025 15:22:19 -0700 | 
| parents | a075f8a93183 | 
| children | 
| 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 | 
| 517 | 7 # TODO: | 
| 8 # - combine with quotemail...wth? | |
| 9 # -> textshaper | |
| 10 | |
| 
271
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
11 import sys | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
12 import textwrap | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
13 from subprocess import check_output as call | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
14 | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
15 def quote(text, prefix='> ', width=69): | 
| 
 
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 returns quoted text | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
18 - prefix: string to prepend quote | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
19 - width: final width (emacs wraps at 70) | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
20 """ | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
21 width -= len(prefix) # subtract the prefix | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
22 text = text.strip() # remove surrounding whitespace | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
23 lines = [] | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
24 for line in text.splitlines(): | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
25 line = line.strip() | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
26 lines.extend(textwrap.wrap(line, width)) | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
27 return '\n'.join(['%s%s' % (prefix, line) | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
28 for line in lines]) | 
| 
 
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 def main(args=sys.argv[1:]): | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
31 text = sys.stdin.read() | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
32 sys.stdout.write(quote(text)) | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
33 | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
34 if __name__ == '__main__': | 
| 
 
2454d5a1728b
add a email-esque quoting script
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
35 main() | 
