Browse code

add fancy output

Hanno Böck authored on13/01/2008 13:20:24
Showing1 changed files
... ...
@@ -22,8 +22,10 @@
22 22
 # You should have received a copy of the GNU General Public License
23 23
 # along with this program.    If not, see <http://www.gnu.org/licenses/>.
24 24
 
25
-import ConfigParser, os, glob, pprint, re, optparse, sys
25
+import ConfigParser, os, glob, pprint, re, optparse, sys, gettext
26 26
 
27
+gettext.textdomain('freewvs')
28
+_ = gettext.gettext
27 29
 
28 30
 def versioncompare(safe_version, find_version):
29 31
     if safe_version == [""]:
... ...
@@ -35,10 +37,21 @@ def versioncompare(safe_version, find_version):
35 37
             return False
36 38
     return (len(find_version)<len(safe_version))
37 39
 
38
-def vulnprint(appname, version, safeversion, vuln, vfilename, subdir):
40
+def vulnprint(appname, version, safeversion, vuln, vfilename, subdir, fancy):
39 41
     appdir = '/'.join(os.path.abspath(vfilename).split('/')[:-1-subdir])
40
-    print "%(appname)s %(version)s (%(safeversion)s) %(vuln)s %(appdir)s" \
41
-          % vars()
42
+    if fancy:
43
+        print _("Directory: %(appdir)s") % vars()
44
+        print _("Vulnerable %(appname)s %(version)s found, please update to "+ \
45
+                "%(safeversion)s or above.") % vars()
46
+        if vuln[:3] == "CVE":
47
+            print _("http://cve.mitre.org/cgi-bin/cvename.cgi?name=%(vuln)s"
48
+                    % vars())
49
+        else:
50
+            print (vuln)
51
+        print
52
+    else:
53
+        print "%(appname)s %(version)s (%(safeversion)s) %(vuln)s %(appdir)s" \
54
+              % vars()
42 55
 
43 56
 pp = pprint.PrettyPrinter(indent=4)
44 57
 
... ...
@@ -49,6 +62,8 @@ parser.add_option("-a", "--all", action="store_true", dest="ALL",
49 62
 parser.add_option("-d", "--debug", action="store_true", dest="DEBUG",
50 63
                   help="Show lots of debugging output, mainly useful"+ \
51 64
                   "for development")
65
+parser.add_option("-f", "--fancy", action="store_true", dest="FANCY",
66
+                  help="Show more fancy output")
52 67
 opts, args = parser.parse_args()
53 68
 
54 69
 # Parse vulnerability database
... ...
@@ -136,13 +151,14 @@ for fdir in args:
136 151
                                 if opts.DEBUG:
137 152
                                     print "File "+mfile
138 153
                                 vulnprint(item['name'], findversion, \
139
-                                          "ok", "", mfile, item['subdir'])
154
+                                          "ok", "", mfile, item['subdir'], \
155
+                                          opts.FANCY)
140 156
                         else:
141 157
                             if opts.DEBUG:
142 158
                                 print "File "+mfile
143 159
                             vulnprint (item['name'], findversion, \
144 160
                                        item['safe'], item['vuln'], \
145
-                                       mfile, item['subdir'])
161
+                                       mfile, item['subdir'], opts.FANCY)
146 162
 
147 163
                     else:
148 164
                         if opts.DEBUG: