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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
#!/usr/local/apps/bin/python
import os, string
#
# Get the output of a command as a tuple of strings.
#
def GetFilenames(command):
p = os.popen(command)
files = p.readlines()
p.close()
return files
#
# Get a list of all files that have a .code extension and contain "CreateNode".
#
def GetCreateNodeFiles():
files = GetFilenames("grep -i CreateNode *.code")
retval = []
for f in files:
index = string.find(f, ':')
if(index != -1):
str = f[:index]
if(str not in retval):
retval = retval + [str]
return retval
#
# Execute a command. It's wrapped for debugging.
#
def systemCommand(command):
print command
return os.system(command)
###############################################################################
#
# Purpose: This program regenerates all of the state objects in this directory
# by first checking out the XML files and then calling xml2atts.
#
# Programmer: Brad Whitlock
# Date: Tue May 20 10:00:56 PDT 2003
#
# Modifications:
# Brad Whitlock, Fri Dec 14 15:56:16 PST 2007
# Removed cleartool commands.
#
###############################################################################
def main():
# Get the names of the XML files in this directory.
files = GetFilenames("ls *.xml")
# Check out each XML file and regenerate the C and h files.
for f in files:
bname = f[:-5]
command = "../../bin/xml2atts -clobber %s" % f
systemCommand(command)
# Warn about files that have special CreateNode functions.
cnfiles = GetCreateNodeFiles()
if(len(cnfiles) > 0):
print "***"
print "*** The following code files have special CreateNode methods."
print "*** These .code files may need to be updated:"
print "***"
for f in cnfiles:
print f
return 0
#
# Call the main function
#
main()
|