[Openvas-commits] r1185 - trunk/openvas-plugins/audit

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Fri Aug 22 04:36:55 CEST 2008


Author: jfs
Date: 2008-08-22 04:36:52 +0200 (Fri, 22 Aug 2008)
New Revision: 1185

Added:
   trunk/openvas-plugins/audit/exclude-plugins
Log:
Script to generate a list of plugins to remove from distribution

Added: trunk/openvas-plugins/audit/exclude-plugins
===================================================================
--- trunk/openvas-plugins/audit/exclude-plugins	2008-08-22 02:03:49 UTC (rev 1184)
+++ trunk/openvas-plugins/audit/exclude-plugins	2008-08-22 02:36:52 UTC (rev 1185)
@@ -0,0 +1,89 @@
+#!/bin/bash
+
+# Generate a list of plugins to exclude from the package by looking into
+# them and checking:
+# - if they are known non-free plugins
+# - if they depend on a known non-free plugin
+
+# First tell if there are known non-free plugins
+
+SCRIPTDIR="../../scripts"
+
+if [ ! -d "$SCRIPTDIR" ] ; then
+    echo "The script directory $SCRIPTDIR does not exist" >&2
+    echo "Do not know where to check for plugins" >&2
+    exit 1
+fi
+
+find_plugs () {
+
+if [ -f non-free-plugins ] ; then
+
+    # Check if any of the known non-free-plugins exist
+    #echo "NON-FREE" # DEBUG
+    for plugin in `cat non-free-plugins | grep -v ^\#`; do
+     if [ -e "$SCRIPTDIR/$plugin" ] ; then
+         if egrep -iq '(c).*Tenable Network Security' "$SCRIPTDIR/$plugin"; then
+             echo "$plugin"
+         fi
+     fi
+    done
+
+    # Now check if there are any plugins that include any of the known non-free-plugins
+    #echo "NON-FREE INCLUDEF" # DEBUG
+    for includef in `cat non-free-plugins | grep '\.inc' | grep -v ^\#`; do
+        # Only check if the include file is not there...
+        # since it might have been restored from free sources
+        if [ ! -e "$SCRIPTDIR/$includef" ] ; then
+            total=`egrep -rl 'include\(.$includef.\)' $SCRIPTDIR |grep -v $includef | wc -l` 
+            if [ -n "$total" ] && [ "$total" -ne 0 ] ; then
+                grep -rl $includef $SCRIPTDIR |grep -v $includef 
+            fi
+        fi
+    done
+
+fi
+
+if [ -f "depend-plugins" ] ; then
+
+    # If there is a list of known plugins which depend on non-free plugins and they
+    # are present, print them.
+    #echo "DEPEND-PLUGIN" # DEBUG
+    for plugin in `cat depend-plugins | grep -v ^#`; do
+     if [ -e "$SCRIPTDIR/$plugin" ] ; then
+         echo $plugin
+    fi
+    done
+
+else
+
+    # If there is no such list then find all the plugins that include a file which is
+    # not present in the scripts directory by checking all of their includes
+    # Notice that the include call can have spaces and the .inc filename can be delimited by
+    # double quotes (") or simple quotes (')
+    #echo "NO-DEPEND-PLUGIN" # DEBUG
+    for plugin in $SCRIPTDIR/*; do
+        for includef in `cat $plugin |perl -ne 'print $1."\n" if /include\s*\(.(.*).\)/'`; do
+            if [ ! -e "$SCRIPTDIR/$includef" ] ; then
+                echo $plugin
+            fi
+        done
+    done
+
+
+fi
+
+}
+
+
+# Sort and make unique the list of plugins found, output only the basename, not the full path
+find_plugs |
+sort -u |
+while read file; do
+    name=`basename $file`
+    echo $name
+done
+    
+
+
+exit 0


Property changes on: trunk/openvas-plugins/audit/exclude-plugins
___________________________________________________________________
Name: svn:executable
   + *



More information about the Openvas-commits mailing list