From a91376e4efeef4beaa59e05a04249ff65038a23e Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Sun, 30 Jan 2011 12:05:01 +0100 Subject: improving the showvars script --- tools/showvars.py | 61 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 18 deletions(-) (limited to 'tools') diff --git a/tools/showvars.py b/tools/showvars.py index 4b3d0cb4..94ab3338 100755 --- a/tools/showvars.py +++ b/tools/showvars.py @@ -16,6 +16,7 @@ def handleFile(fname): f = open(fname) lines = f.readlines(); f.close() + rm=[] for l in lines: #remove comments line = l.split(r"//")[0] @@ -39,43 +40,67 @@ def handleFile(fname): if endpos>0: #ok its a oneliner, the comma is in the same line: varname = line[0:endpos].strip() - if varname.startswith("@"): - continue - if varname.startswith("$"): - continue - if varname in allvars: - if not fname in allvars[varname]: - allvars[varname] += [fname] + assignment = line[endpos+1:].strip()[:-1] # remove semicolon + if assignment != "0": + if varname.startswith("@"): + continue + if varname.startswith("$"): + continue + if varname in allvars: + if not fname in allvars[varname]: + allvars[varname] += [fname] + else: + allvars[varname] = [fname] else: - allvars[varname] = [fname] + #print fname + if fname == "." + os.sep + "functions" + os.sep + "clear_vars.txt": + rm += [varname] + else: # ok error, you need to check manually: print "\tline:\t",line + return rm allvars = {} - +rmvars = [] print "please check manully for vars in here:" os.chdir(".."+os.sep+"npc") + for tpl in os.walk("."): for fname in tpl[2]: - handleFile(tpl[0]+os.sep+fname) + rmvars += handleFile(tpl[0]+os.sep+fname) # now check if the variable is not in npc/functions/clear_vars.txt, if so remove it -checkstring = "." + os.sep + "functions" + os.sep + "clear_vars.txt" -rm = [] +#~ checkstring = "." + os.sep + "functions" + os.sep + "clear_vars.txt" +#~ rm = [] +#~ for var in allvars: + #~ if checkstring in allvars[var]: + #~ rm += [var] + +unusedcounter=0 +usedcounter=0 +print "These variables are found in the scripts, which are deleted in clear_vars" for var in allvars: - if checkstring in allvars[var]: - rm += [var] + if not var in rmvars: + continue + + unusedcounter+=1 + print "\t",var + if options.verbose: + for fname in allvars[var]: + print "\t","\t", fname -#now really remove these vars -for var in rm: - del allvars[var] print "These variables are valid variables of the scripts:" for var in allvars: + if var in rmvars: + continue + + usedcounter+=1 print "\t",var if options.verbose: for fname in allvars[var]: print "\t","\t", fname -print "number of vars:", len(allvars) +print "number of vars used:", usedcounter +print "number of vars cleared:", unusedcounter -- cgit v1.2.3-70-g09d2