home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
-
- try:
- from IPython.external.path import path
- except ImportError:
- from path import path
-
- import md5
- import pickle
-
- def showdiff(old, new):
- import difflib
- d = difflib.Differ()
- lines = d.compare(old.lines(), new.lines())
- realdiff = False
- for l in lines:
- print l,
- if not realdiff and not l[0].isspace():
- realdiff = True
- continue
-
- return realdiff
-
-
- def upgrade_dir(srcdir, tgtdir):
-
- def pr(s):
- print s
-
- junk = [
- '.svn',
- 'ipythonrc*',
- '*.pyc',
- '*.pyo',
- '*~',
- '.hg']
-
- def ignorable(p):
- for pat in junk:
- if p.startswith(pat) or p.fnmatch(pat):
- return True
-
- return False
-
- modded = []
- files = [ path(srcdir).relpathto(p) for p in path(srcdir).walkfiles() ]
- rep = tgtdir / '.upgrade_report'
-
- try:
- rpt = pickle.load(rep.open())
- except:
- []
- []
- (None,)
- rpt = { }
-
- for f in files:
- src = srcdir / f
- tgt = tgtdir / f
- if not tgt.isfile():
- pr('Creating %s' % str(tgt))
- tgt.write_text(src.text())
- rpt[str(tgt)] = md5.new(tgt.text()).hexdigest()
- continue
- (None,) if ignorable(f) else []
- cont = tgt.text()
- sum = rpt.get(str(tgt), None)
- if sum and md5.new(cont).hexdigest() == sum:
- pr('%s: Unedited, installing new version' % tgt)
- tgt.write_text(src.text())
- rpt[str(tgt)] = md5.new(tgt.text()).hexdigest()
- continue
- pr(' == Modified, skipping %s, diffs below == ' % tgt)
- real = showdiff(tgt, src)
- pr('')
- if not real:
- pr('(Ok, it was identical, only upgrading checksum)')
- rpt[str(tgt)] = md5.new(tgt.text()).hexdigest()
- continue
- modded.append(tgt)
-
- pickle.dump(rpt, rep.open('w'))
- if modded:
- print '\n\nDelete the following files manually (and rerun %upgrade)\nif you need a full upgrade:'
- for m in modded:
- print m
-
-
-
- import sys
- if __name__ == '__main__':
- upgrade_dir(path(sys.argv[1]), path(sys.argv[2]))
-
-