|
| 1 | +#!/usr/local/bin/python3 |
| 2 | + |
| 3 | +import http.client, urllib.parse, sys, argparse |
| 4 | + |
| 5 | +def main(): |
| 6 | + parser = argparse.ArgumentParser() |
| 7 | + parser.add_argument("--js", default='/dev/stdin', help="Input file") |
| 8 | + parser.add_argument("--js_output_file", default='/dev/stdout', help="Output file") |
| 9 | + parser.add_argument("--compilation_level", default='WHITESPACE_ONLY', choices=['WHITESPACE_ONLY', 'SIMPLE_OPTIMIZATIONS', 'ADVANCED_OPTIMIZATIONS'], help="Compilation level") |
| 10 | + args = parser.parse_args() |
| 11 | + js_code = open(args.js, 'r') |
| 12 | + |
| 13 | + params = urllib.parse.urlencode([ |
| 14 | + ('js_code', js_code.read()), |
| 15 | + ('compilation_level', args.compilation_level), |
| 16 | + ('output_format', 'text'), |
| 17 | + ('output_info', 'compiled_code'), |
| 18 | + ]) |
| 19 | + |
| 20 | + js_code.close() |
| 21 | + headers = { "Content-type": "application/x-www-form-urlencoded" } |
| 22 | + conn = http.client.HTTPConnection('closure-compiler.appspot.com') |
| 23 | + conn.request('POST', '/compile', params, headers) |
| 24 | + response = conn.getresponse() |
| 25 | + data = response.read() |
| 26 | + output_code = open(args.js_output_file, 'w') |
| 27 | + output_code.write(data.decode("utf-8")) |
| 28 | + output_code.close() |
| 29 | + conn.close() |
| 30 | + |
| 31 | +if __name__ == "__main__": |
| 32 | + main() |
0 commit comments