| Index: abp/filters/diff_script.py | 
| =================================================================== | 
| new file mode 100644 | 
| --- /dev/null | 
| +++ b/abp/filters/diff_script.py | 
| @@ -0,0 +1,60 @@ | 
| +# This file is part of Adblock Plus <https://adblockplus.org/>, | 
| +# Copyright (C) 2006-present eyeo GmbH | 
| +# | 
| +# Adblock Plus is free software: you can redistribute it and/or modify | 
| +# it under the terms of the GNU General Public License version 3 as | 
| +# published by the Free Software Foundation. | 
| +# | 
| +# Adblock Plus is distributed in the hope that it will be useful, | 
| +# but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
| +# GNU General Public License for more details. | 
| +# | 
| +# You should have received a copy of the GNU General Public License | 
| +# along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 
| + | 
| +"""Command line script for rendering Adblock Plus filter list diffs.""" | 
| + | 
| +from __future__ import print_function | 
| + | 
| +import argparse | 
| +import io | 
| +import sys | 
| + | 
| +from .renderer import render_diff | 
| + | 
| +__all__ = ['main'] | 
| + | 
| + | 
| +def parse_args(): | 
| + parser = argparse.ArgumentParser(description='Render a filter list diff.') | 
| + parser.add_argument( | 
| + 'base', help='the older filter list that needs to be updated', | 
| + nargs='?') | 
| + parser.add_argument( | 
| + 'latest', help='the most recent version of the filter list', | 
| + nargs='?') | 
| + parser.add_argument( | 
| + 'outfile', help='output file for filter list diff', | 
| + default='-', nargs='?') | 
| + return parser.parse_args() | 
| + | 
| + | 
| +def main(): | 
| + """Entry point for the diff rendering script (diffrender).""" | 
| 
 
Sebastian Noack
2018/09/25 17:00:39
diffrender? Isn't it fldiff?
 
rhowell
2018/09/25 23:01:45
Good catch! I changed the name, but missed this li
 
 | 
| + args = parse_args() | 
| + | 
| + with io.open(args.base, 'r', encoding='utf-8') as base, \ | 
| + io.open(args.latest, 'r', encoding='utf-8') as latest: | 
| + | 
| + lines = render_diff(base, latest) | 
| + if args.outfile == '-': | 
| + outfile = io.open(sys.stdout.fileno(), 'w', | 
| + closefd=False, | 
| + encoding=sys.stdout.encoding or 'utf-8') | 
| + else: | 
| + outfile = io.open(args.outfile, 'w', encoding='utf-8') | 
| + | 
| + with outfile: | 
| + for line in lines: | 
| + print(line, file=outfile) |