| # Copyright 2022 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """Calculates the checksum for pervasive.js. |
| |
| Usage: |
| python3 checksum_pervasive_js.py pervasive.js |
| |
| """ |
| |
| import re |
| import sys |
| import pervasive_checksum |
| |
| |
| def main(argv): |
| if len(argv) != 2: |
| print('Supply the path to pervasive.js as the sole command-line argument') |
| sys.exit(1) |
| |
| filename = argv[1] |
| with open(filename, mode='rb') as f: |
| raw_body = f.read() |
| |
| headers = [] |
| with open(f'{filename}.mock-http-headers', mode='r') as lines: |
| for line in lines: |
| if line.startswith('HTTP/'): |
| continue |
| match = re.match(r'^([A-Za-z0-9-]+): *(.*)$', line) |
| if not match: |
| print(f'Failed to parse header line: {line}') |
| continue |
| headers.append((match.group(1), match.group(2))) |
| |
| print(pervasive_checksum.calculate_checksum(headers, raw_body)) |
| |
| |
| if __name__ == '__main__': |
| main(sys.argv) |