1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
import os
import argparse
def get_args():
parser = argparse.ArgumentParser()
parser.add_argument('--moddir', required=True,
help='directory containing modified files')
parser.add_argument('--dir', required=True,
help='directory containing unmodified files')
parser.add_argument('--patch-dir', required=True)
return parser.parse_args()
def main():
args = get_args()
os.makedirs(args.patch_dir, exist_ok=True)
for root, _, files in os.walk(args.dir):
for fname in files:
src = os.path.join(args.dir, fname)
dst = os.path.join(args.moddir, fname)
patch = os.path.join(args.patch_dir, fname + '.patch')
os.system('diff -u %s %s > %s' % (src, dst, patch))
with open(patch, 'rb') as fp:
buff = fp.read()
if len(buff) == 0:
os.remove(patch)
else:
print(fname)
break
main()
|