From: <Z3...@us...> - 2009-11-28 11:04:04
|
Revision: 286 http://spd.svn.sourceforge.net/spd/?rev=286&view=rev Author: Z3po Date: 2009-11-28 11:03:52 +0000 (Sat, 28 Nov 2009) Log Message: ----------- added widemode output and changed some of help information Modified Paths: -------------- trunk/src/spd-cli trunk/src/spdCLI.py Modified: trunk/src/spd-cli =================================================================== --- trunk/src/spd-cli 2009-10-04 07:23:59 UTC (rev 285) +++ trunk/src/spd-cli 2009-11-28 11:03:52 UTC (rev 286) @@ -24,13 +24,15 @@ import spdCLI from optparse import OptionParser +version = "0.3-alpha" + pp = spdCore.name(sys.argv[0]) # {{{ OptionParser stuff parser = OptionParser( "%prog [Options] Search", description = pp.acronym + ' - ' + pp.name, - version = "0.3-alpha", - epilog = "With no parameters it will print out nothing!") + version = version, + epilog = "With no parameters it will print out everything!") parser.add_option( "-d", "--delete", metavar="Keyword", @@ -55,11 +57,11 @@ default=False, help = "print Password only of first match, usefull for piping (e.g. in rdesktop)") -#parser.add_option( "-w", "--wide", -# action="store_true", -# dest = "widemode", -# default=False, -# help = "print output in wide mode (means as a table)") +parser.add_option( "-w", "--wide", + action="store_true", + dest = "widemode", + default=False, + help = "print output in wide mode (means as a table)") @@ -97,10 +99,11 @@ except: pass -#elif options.widemode: -# searchPatterns = sys.argv -# del searchPatterns[0] -# interface.tableOutput(pc.findPassword(searchPatterns)) +elif options.widemode: + searchPatterns = sys.argv + del searchPatterns[0] + del searchPatterns[0] + interface.tableOutput(pc.findPassword(searchPatterns)) else: # regular search Modified: trunk/src/spdCLI.py =================================================================== --- trunk/src/spdCLI.py 2009-10-04 07:23:59 UTC (rev 285) +++ trunk/src/spdCLI.py 2009-11-28 11:03:52 UTC (rev 286) @@ -23,28 +23,73 @@ # }}} def tableOutput(self,table): # {{{ - hits = len(table['Password']) # Password always exists :-) - length = {} + collumns = len(table) + entries = len(table.values()[0]) + maxlength = {} header = "|" - for i in table: - if (len(max(table[i])) > len(i)): - length[i] = len(max(table[i])) - else: - length[i] = len(i) - - header += i.ljust(length[i]) + "|" + # Ride through all columns and find the maximal length a line can have + for i in range(0,collumns): + maxlength[i] = 0 + # First for the keys + if ( maxlength[i] < len(table.keys()[i]) ): + maxlength[i] = len(table.keys()[i]) + # Secondary for the values + for j in table.values()[i]: + if ( table.keys()[i] == "__ID" ): + j = str(j) + try: + if ( maxlength[i] < len(j)): + maxlength[i] = len(j) + except Exception, e: + print e - print header + # Now Print the Entries in WIDE mode :) + output = "| " + table.keys()[0].ljust(maxlength[0]) + for i in range(1,collumns): + output = output + " | " + table.keys()[i].ljust(maxlength[i]) - for i in range(0,hits): - result = "|" - for j in table: - result += table[j][i].ljust(length[j]) + "|" - print result + print output - # }}} + if ( table.keys()[0] == self.config['passwordField'] ): + output = "| " + self.colorFG[self.config["passwordFG"]] + self.colorBG[self.config["passwordBG"]] + output = table.values()[0][0].ljust(maxlength[0]) + output = self.colorReset + " | " + else: + output = "| " + table.values()[0][0].ljust(maxlength[0]) + " | " + for i in range(1,collumns): + if ( table.keys()[i] == "__ID" ): + table.values()[i][0] = str(table.values()[i][0]) + if ( table.keys()[i] == self.config['passwordField'] ): + output += self.colorFG[self.config["passwordFG"]] + self.colorBG[self.config["passwordBG"]] + output += table.values()[i][0].ljust(maxlength[i]) + output += self.colorReset + " | " + else: + output += table.values()[i][0].ljust(maxlength[i]) + " | " + + print output + + for j in range(1,entries): + if ( table.keys()[0] == self.config['passwordField'] ): + output = "| " + self.colorFG[self.config["passwordFG"]] + self.colorBG[self.config["passwordBG"]] + output = table.values()[0][j].ljust(maxlength[0]) + output = self.colorReset + " | " + else: + output = "| " + table.values()[0][j].ljust(maxlength[0]) + " | " + + for i in range(1,collumns): + if ( table.keys()[i] == "__ID" ): + table.values()[i][j] = str(table.values()[i][j]) + if ( table.keys()[i] == self.config['passwordField'] ): + output += self.colorFG[self.config["passwordFG"]] + self.colorBG[self.config["passwordBG"]] + output += table.values()[i][j].ljust(maxlength[i]) + output += self.colorReset + " | " + else: + output += table.values()[i][j].ljust(maxlength[i]) + " | " + print output + + def listOutput(self,table): # {{{ hits = len(table.values()[0]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |