File: quotestring.py

package info (click to toggle)
handbrake 1.6.1%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 26,924 kB
  • sloc: ansic: 111,120; sh: 3,024; python: 2,354; ruby: 1,635; makefile: 588; xml: 186; sed: 16; csh: 15
file content (24 lines) | stat: -rwxr-xr-x 783 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env python

import re
import argparse
import sys


def main():
    parser = argparse.ArgumentParser(description='Creates a quoted string suitable for inclusion in a C char*')
    parser.add_argument('infile', metavar='<input>', type=argparse.FileType('r'), help='Input file to quote')
    parser.add_argument('outfile', metavar='<output>', type=argparse.FileType('w'), nargs='?',
                        default=sys.stdout, help='Output quoted string [stdout]')
    args = parser.parse_args()

    ss = args.infile.read()
    ss = re.sub(r'\\', r'\\\\', ss)
    ss = re.sub(r'"', r'\\"', ss)
    pattern = re.compile("$", re.M)
    ss = re.sub(pattern, r'\\n"', ss)
    pattern = re.compile("^", re.M)
    ss = re.sub(pattern, "\"", ss)
    args.outfile.write(ss)

main()