| 193 | |
| 194 | |
| 195 | def main(): |
| 196 | import sys |
| 197 | import getopt |
| 198 | try: |
| 199 | opts, args = getopt.getopt(sys.argv[1:], 'td') |
| 200 | except getopt.error as msg: |
| 201 | sys.stdout = sys.stderr |
| 202 | print(msg) |
| 203 | print("usage: quopri [-t | -d] [file] ...") |
| 204 | print("-t: quote tabs") |
| 205 | print("-d: decode; default encode") |
| 206 | sys.exit(2) |
| 207 | deco = False |
| 208 | tabs = False |
| 209 | for o, a in opts: |
| 210 | if o == '-t': tabs = True |
| 211 | if o == '-d': deco = True |
| 212 | if tabs and deco: |
| 213 | sys.stdout = sys.stderr |
| 214 | print("-t and -d are mutually exclusive") |
| 215 | sys.exit(2) |
| 216 | if not args: args = ['-'] |
| 217 | sts = 0 |
| 218 | for file in args: |
| 219 | if file == '-': |
| 220 | fp = sys.stdin.buffer |
| 221 | else: |
| 222 | try: |
| 223 | fp = open(file, "rb") |
| 224 | except OSError as msg: |
| 225 | sys.stderr.write("%s: can't open (%s)\n" % (file, msg)) |
| 226 | sts = 1 |
| 227 | continue |
| 228 | try: |
| 229 | if deco: |
| 230 | decode(fp, sys.stdout.buffer) |
| 231 | else: |
| 232 | encode(fp, sys.stdout.buffer, tabs) |
| 233 | finally: |
| 234 | if file != '-': |
| 235 | fp.close() |
| 236 | if sts: |
| 237 | sys.exit(sts) |
| 238 | |
| 239 | |
| 240 | |