| 519 | 1 #!/usr/bin/env python | 
|  | 2 | 
|  | 3 # XXX STUB | 
|  | 4 | 
|  | 5 """ | 
|  | 6 http://code.google.com/p/python-patch/ | 
|  | 7 """ | 
|  | 8 | 
|  | 9 import difflib | 
|  | 10 import optparse | 
|  | 11 import os | 
|  | 12 import subprocess | 
|  | 13 import sys | 
|  | 14 from which import which | 
|  | 15 | 
|  | 16 here = os.path.dirname(os.path.realpath(__file__)) | 
|  | 17 | 
|  | 18 wiggle = which('wiggle') | 
|  | 19 | 
|  | 20 def find(directory, pattern): | 
|  | 21     # TODO: -> python | 
| 520 | 22     return [i for i in subprocess.check_output(['find', directory, '-iname', pattern]).splitlines() if i.strip()] | 
|  | 23 | 
| 519 | 24 def rejects(directory): | 
|  | 25     """all rejects in directory""" | 
|  | 26     # TODO: not call out to find | 
| 520 | 27     return find(directory, '*.rej') | 
| 519 | 28 | 
|  | 29 def main(args=sys.argv[1:]): | 
|  | 30 | 
| 521 | 31     # parse command line args | 
| 519 | 32     usage = '%prog [options]' | 
|  | 33     parser = optparse.OptionParser(usage=usage, description=__doc__) | 
|  | 34     parser.add_option('-d', '--directory', default=os.getcwd()) | 
|  | 35     options, args = parser.parse_args(args) | 
|  | 36 | 
| 521 | 37     # sanity check | 
|  | 38     if not wiggle: | 
|  | 39         parser.error("Need wiggle") | 
|  | 40 | 
| 520 | 41     # get rejects | 
|  | 42     rej = rejects(options.directory) | 
|  | 43     if not rej: | 
|  | 44         parser.error("No rejects") | 
|  | 45     print 'rej:\n%s\n' % '\n'.join([' %s' % r for r in rej]) | 
|  | 46 | 
| 521 | 47     # get the originals | 
|  | 48     orig = [] | 
| 520 | 49     for r in rej: | 
|  | 50         # find the corresponding file | 
| 521 | 51         o = r.rsplit('.rej')[0] | 
|  | 52         if not os.path.exists(o): | 
|  | 53             parser.error("%s not found") | 
|  | 54         orig.append(o) | 
|  | 55 | 
|  | 56     # try to wiggle them | 
| 519 | 57 | 
|  | 58 if __name__ == '__main__': | 
|  | 59     main() |