| # Reads in a text file, and performs the necessary escapes so that it |
| # can be #included as a static string like: |
| # static const char string_from_textfile[] = |
| # #include "build/textfile.h" |
| # ; |
| # This script simply prints the escaped string straight to stdout |
| |
| from __future__ import print_function |
| |
| import sys |
| |
| # Can either be set explicitly, or left blank to auto-detect |
| # Except auto-detect doesn't work because the file has been passed |
| # through Python text processing, which makes all EOL a \n |
| line_end = '\\r\\n' |
| |
| if __name__ == "__main__": |
| filename = sys.argv[1] |
| for line in open(filename, 'r').readlines(): |
| if not line_end: |
| for ending in ('\r\n', '\r', '\n'): |
| if line.endswith(ending): |
| line_end = ending.replace('\r', '\\r').replace('\n', '\\n') |
| break |
| if not line_end: |
| raise Exception("Couldn't auto-detect line-ending of %s" % filename) |
| line = line.rstrip('\r\n') |
| line = line.replace('\\', '\\\\') |
| line = line.replace('"', '\\"') |
| print('"%s%s"' % (line, line_end)) |