Poodletooth-iLand/panda/direct/directscripts/cleancvstree
2015-03-03 17:10:12 -05:00

44 lines
1.1 KiB
Text

##############################################################################
#
# cleancvstree
#
# Cleancvstree searches a CVS tree for files that are not in CVS, and
# deletes them. Be careful using it --- it's very aggressive.
#
##############################################################################
import sys,os
def cleanCvsTree(dir):
try:
sub = os.listdir(dir)
except:
print "Could not read directory: "+dir
return
valid = {}
try:
readentries = 0
cvsent = open(dir + "/CVS/Entries")
for line in cvsent:
words = line.split("/")
if (len(words) > 1):
valid[words[1]] = 1
cvsent.close()
readentries = 1
except:
print "Could not read "+dir+"/CVS/Entries"
if (readentries):
for file in sub:
if (os.path.isfile(dir+"/"+file)):
if (valid.has_key(file)==0):
os.unlink(dir+"/"+file)
for file in sub:
if (file != "CVS"):
if (os.path.isdir(dir+"/"+file)):
cleanCvsTree(dir+"/"+file)
if (os.path.isdir(sys.argv[1])==0):
print "Not a directory: "+sys.argv[1]
os.exit(1)
cleanCvsTree(sys.argv[1])