view python/netdiff.py @ 694:ebca6d85213a

File "/usr/lib/python3/dist-packages/IPython/config/__init__.py", line 16, in <module> from .application import * File "/usr/lib/python3/dist-packages/IPython/config/application.py", line 31, in <module> from IPython.config.configurable import SingletonConfigurable File "/usr/lib/python3/dist-packages/IPython/config/configurable.py", line 33, in <module> from IPython.utils.text import indent, wrap_paragraphs File "/usr/lib/python3/dist-packages/IPython/utils/text.py", line 28, in <module> from IPython.external.path import path File "/usr/lib/python3/dist-packages/IPython/external/path/__init__.py", line 2, in <module> from path import * File "/home/jhammel/python/path.py", line 25 print root(path) ^
author Jeff Hammel <k0scist@gmail.com>
date Wed, 09 Jul 2014 16:26:49 -0700
parents 3168816f2d28
children
line wrap: on
line source

#!/usr/bin/env python

"""
compare differences of url contents
"""

import difflib
import optparse
import os
import sys
import urllib2

here = os.path.dirname(os.path.realpath(__file__))

def main(args=sys.argv[1:]):

    usage = '%prog [options] from-url to-url'
    parser = optparse.OptionParser(usage=usage, description=__doc__)
    parser.add_option('--bash', '--command', dest='command',
                      action='store_true', default=False,
                      help="prepend output with bash command")
    options, args = parser.parse_args(args)
    if len(args) != 2:
        parser.print_usage()
        parser.exit(1)

    contents = {}
    for url in args:
        contents[url] = urllib2.urlopen(url).read()

    diff = difflib.unified_diff(contents[args[0]],
                                contents[args[1]],
                                fromfile=args[0],
                                tofile=args[1],
                                lineterm='')

    # output
    if options.command:

        template = """%(PS1)s diff <(curl --location %(fromfile)s 2> /dev/null) <(curl --location %(tofile)s 2> /dev/null)"""
        print template % dict(PS1='#',
                              fromfile=args[0],
                              tofile=args[1])

    print '\n'.join(list(diff))

if __name__ == '__main__':
    main()