#! /usr/bin/python #+ # NAME: # www_help_sync # PROCEDURE: # Compare ascii files # CALLING SEQUENCE: # www_help_sync.py ext=ext new_dir old_dir # INPUTS: # new_dir directory containing new help files # old_dir directory containing old help files # CALLS: # tiny.args, tiny.start # PROCEDURE: # HTML files in directory 'new_dir' are compared with files # in directory 'old_dir' with the same base name # (file name, plus extension). # HTML files in old_dir not present in new_dir are deleted. # HTML files in new_dir not present or different from the # corresponding file in old_dir is moved to new_dir. # The remaining HTML files in new_dir are deleted. # MODIFICATION HISTORY: # FEB-2003, Paul Hick (UCSD/CASS; pphick@ucsd.edu) #- import sys, os from tiny import args, start, hide_env args = args( sys.argv ) extension = start( '-ext=', sys.argv ) if extension == '': extension = '.html' if len(args) == 3: new_dir = args[1] old_dir = args[2] else: new_dir = raw_input('New directory : ') old_dir = raw_input('Old directory : ') if not os.path.isdir(new_dir): print 'Not a directory: ', hide_env(new_dir) sys.exit(1) if not os.path.isdir(old_dir): print 'Not a directory: ', hide_env(old_dir) sys.exit(1) # Loop over old files. Delete files not present in new_dir. for base_file in os.listdir(old_dir): new_file = os.path.join(new_dir,base_file) old_file = os.path.join(old_dir,base_file) if (os.path.splitext(old_file))[1] == extension: if not os.path.isfile(new_file): os.remove(old_file) print 'removing ', hide_env(old_file) # Loop over new files. Only move different files to old_dir. # Delete the rest. for base_file in os.listdir(new_dir): new_file = os.path.join(new_dir,base_file) old_file = os.path.join(old_dir,base_file) if (os.path.splitext(base_file))[1] == extension: keep_old = os.path.isfile(old_file) if keep_old: new_lines = (open(new_file, 'r')).read() old_lines = (open(old_file, 'r')).read() keep_old = len(new_lines) == len(old_lines) and new_lines == old_lines if keep_old: os.remove(new_file) else: os.rename(new_file,old_file) print 'updating', hide_env(old_file) sys.exit(1)