Refactor the output filename handling and sct position in the name

add --sct options for before (sct_*.tcl) or after (*_sct.tcl) the driver name
This commit is contained in:
Douglas Clowes
2014-11-06 15:40:40 +11:00
parent 90d4fc6870
commit 58ca10883f

View File

@ -637,6 +637,36 @@ def make_path(MyVar):
path += MyVar['name']
return path
def generate_filename(MyDriver):
global args
old_name = "sct_%s.tcl" % MyDriver['name']
new_name = "%s_sct.tcl" % MyDriver['name']
if 'PathName' in MyDriver:
full_old_name = os.path.join(MyDriver['PathName'], old_name)
full_new_name = os.path.join(MyDriver['PathName'], new_name)
else:
full_old_name = old_name
full_new_name = new_name
# This block of code generates shell commands to help the old->new rename
if Move:
fd = open("git_mv.sh", "a")
fd.write( "git mv " + full_old_name + " " + full_new_name + "\n")
fd.close()
fd = open("grep_sed.sh", "a")
fd.write( "for f in $(grep " + old_name + " instrument -Irl" + "); do\n")
fd.write( " echo ${f}\n")
fd.write( " sed -i ${f} -e 's/" + old_name + "/" + new_name + "/'\n")
fd.write( "done\n")
fd.close()
if args.sct == "before":
MyDriver['filename'] = old_name
MyDriver['fullname'] = full_old_name
else:
MyDriver['filename'] = new_name
MyDriver['fullname'] = full_new_name
def parse_args(arg_str):
'''
Parse the TCL argument string into a list of identifiers (in order) plus
@ -1714,8 +1744,8 @@ def put_postamble(MyDriver):
txt += [line]
txt += ['}']
txt += ['']
txt += ['clientput "file evaluation of sct_%s.tcl"' % MyDriver['name']]
txt += ['%s::sics_log 9 "file evaluation of sct_%s.tcl"' % (MyDriver['namespace'], MyDriver['name'])]
txt += ['clientput "file evaluation of %s"' % MyDriver['filename']]
txt += ['%s::sics_log 9 "file evaluation of %s"' % (MyDriver['namespace'], MyDriver['filename'])]
emit(txt)
def put_read_config(MyDriver):
@ -1897,16 +1927,8 @@ def generate_driver(MyDriver):
global NumberOfLinesOut
global fdo
NumberOfLinesOut = 0
old_name = "sct_%s.tcl" % MyDriver['name']
new_name = "%s_sct.tcl" % MyDriver['name']
if 'PathName' in MyDriver:
full_old_name = os.path.join(MyDriver['PathName'], old_name)
full_new_name = os.path.join(MyDriver['PathName'], new_name)
else:
full_old_name = old_name
full_new_name = new_name
fdo = open(full_new_name, 'w')
MyDriver['filename'] = new_name
generate_filename(MyDriver)
fdo = open(MyDriver['fullname'], 'w')
put_preamble(MyDriver)
put_standard_code(MyDriver)
put_mkDriver(MyDriver)
@ -1924,17 +1946,6 @@ def generate_driver(MyDriver):
if Verbose:
print "Produced file %s with %d lines." % \
( MyDriver['filename'], NumberOfLinesOut)
# This block of code generates shell commands to help the old->new rename
if Move:
fd = open("git_mv.sh", "a")
fd.write( "git mv " + full_old_name + " " + full_new_name + "\n")
fd.close()
fd = open("grep_sed.sh", "a")
fd.write( "for f in $(grep " + old_name + " instrument -Irl" + "); do\n")
fd.write( " echo ${f}\n")
fd.write( " sed -i ${f} -e 's/" + old_name + "/" + new_name + "/'\n")
fd.write( "done\n")
fd.close()
def process_drivers(TheDrivers):
if Verbose:
@ -2075,6 +2086,8 @@ def main():
action="store_true")
parser.add_argument("-m", "--move", help="generate move commands",
action="store_true")
parser.add_argument("--sct", help="where to put the sct in the filename",
choices=["before", "after"], default="after")
parser.add_argument("-v", "--verbose", help="verbose output",
action="store_true")
parser.add_argument("driver_source", help="driver source file", nargs="*")