Home | History | Annotate | Line # | Download | only in admin
audit-packages.sh.in revision 1.1
      1  1.1  joerg #!/bin/sh
      2  1.1  joerg 
      3  1.1  joerg pkg_admin=@PKG_ADMIN@
      4  1.1  joerg 
      5  1.1  joerg usage() {
      6  1.1  joerg 	echo 'Usage: audit-packages [-deqsVv] [-c config_file] [-F file]' >& $2
      7  1.1  joerg 	echo '                      [-g file] [-h file]' >& $2
      8  1.1  joerg 	echo '                      [-K pkg_dbdir] [-n package] [-p package]' >& $2
      9  1.1  joerg 	echo '                      [-Q varname] [-t type]' >& $2
     10  1.1  joerg 	echo "Please use \`\`pkg_admin fetch-pkg-vulnerabilities'' instead." >& $2
     11  1.1  joerg 	exit $1
     12  1.1  joerg }
     13  1.1  joerg 
     14  1.1  joerg do_pkgdb=
     15  1.1  joerg do_eol=
     16  1.1  joerg do_fetch=
     17  1.1  joerg do_quiet=
     18  1.1  joerg do_sign=
     19  1.1  joerg do_verbose=
     20  1.1  joerg do_check_file=
     21  1.1  joerg do_check_pattern=
     22  1.1  joerg do_check_installed=
     23  1.1  joerg do_check_vul_file=
     24  1.1  joerg do_limit_type=
     25  1.1  joerg do_print_var=
     26  1.1  joerg 
     27  1.1  joerg args=`getopt F:K:Q:Vc:deg:h:n:p:qst:v $*`
     28  1.1  joerg if [ $? -ne 0 ]; then
     29  1.1  joerg 	usage 1 2
     30  1.1  joerg fi
     31  1.1  joerg 
     32  1.1  joerg set -- $args
     33  1.1  joerg 
     34  1.1  joerg while [ $# -gt 0 ]; do
     35  1.1  joerg 	case "$1" in
     36  1.1  joerg 	-F)
     37  1.1  joerg 		do_check_file=$2
     38  1.1  joerg 		shift
     39  1.1  joerg 		;;
     40  1.1  joerg 	-K)
     41  1.1  joerg 		do_pkgdb="$1 $2"
     42  1.1  joerg 		shift
     43  1.1  joerg 		;;
     44  1.1  joerg 	-Q)
     45  1.1  joerg 		do_print_var="$2"
     46  1.1  joerg 		shift
     47  1.1  joerg 		;;
     48  1.1  joerg 	-V)
     49  1.1  joerg 		exec ${pkg_admin} -V
     50  1.1  joerg 		;;
     51  1.1  joerg 	-c)
     52  1.1  joerg 		echo "The audit-packages wrapper does not support -c" >&2
     53  1.1  joerg 		echo "Please switch to \`\`pkg_admin fetch-pkg-vulnerabilities''." >&2
     54  1.1  joerg 		exit 1
     55  1.1  joerg 		;;
     56  1.1  joerg 	-d)
     57  1.1  joerg 		do_fetch=1
     58  1.1  joerg 		;;
     59  1.1  joerg 	-e)
     60  1.1  joerg 		do_eol=-e
     61  1.1  joerg 		;;
     62  1.1  joerg 	-g)
     63  1.1  joerg 		echo "The audit-packages wrapper does not support -g" >&2
     64  1.1  joerg 		echo "Please switch to \`\`pkg_admin fetch-pkg-vulnerabilities''." >&2
     65  1.1  joerg 		exit 1
     66  1.1  joerg 		;;
     67  1.1  joerg 	-h)
     68  1.1  joerg 		do_check_vul_file=$2
     69  1.1  joerg 		shift
     70  1.1  joerg 		;;
     71  1.1  joerg 	-n)
     72  1.1  joerg 		do_check_pattern=$2
     73  1.1  joerg 		shift
     74  1.1  joerg 		;;
     75  1.1  joerg 	-p)
     76  1.1  joerg 		do_check_installed=$2
     77  1.1  joerg 		shift
     78  1.1  joerg 		;;
     79  1.1  joerg 	-q)
     80  1.1  joerg 		do_quiet=-q
     81  1.1  joerg 		;;
     82  1.1  joerg 	-s)
     83  1.1  joerg 		do_sign=-s
     84  1.1  joerg 		;;
     85  1.1  joerg 	-t)
     86  1.1  joerg 		do_limit_type="-t $2"
     87  1.1  joerg 		shift
     88  1.1  joerg 		;;
     89  1.1  joerg 	-v)
     90  1.1  joerg 		do_verbose="$do_verbose -v"
     91  1.1  joerg 		;;
     92  1.1  joerg 	esac
     93  1.1  joerg 	shift
     94  1.1  joerg done
     95  1.1  joerg 
     96  1.1  joerg if [ -n "${do_fetch}" ]; then
     97  1.1  joerg 	exec ${pkg_admin} ${do_pkgdb} fetch-pkg-vulnerabilities ${do_sign}
     98  1.1  joerg fi
     99  1.1  joerg 
    100  1.1  joerg if [ -n "${do_check_vul_file}" ]; then
    101  1.1  joerg 	exec ${pkg_admin} ${do_pkgdb} check-pkg-vulnerabilities ${do_sign} "${do_check_vul_file}"
    102  1.1  joerg fi
    103  1.1  joerg 
    104  1.1  joerg if [ -n "${do_print_var}" ]; then
    105  1.1  joerg 	exec ${pkg_admin} ${do_pkgdb} config-var "${do_print_var}"
    106  1.1  joerg fi
    107  1.1  joerg 
    108  1.1  joerg if [ -n "${do_check_file}" ]; then
    109  1.1  joerg 	if [ -n "${do_check_pattern}" -o -n "${do_check_installed}" ]; then
    110  1.1  joerg 		echo "Only one of -F, -n or -p is interpreted at a time." >& 2
    111  1.1  joerg 		usage 1 2
    112  1.1  joerg 	fi
    113  1.1  joerg 	exec ${pkg_admin} ${do_pkgdb} ${do_verbose} ${do_quiet} audit-pkg \
    114  1.1  joerg 	    ${do_eol} ${do_limit_type} ${do_check_file}
    115  1.1  joerg fi
    116  1.1  joerg 
    117  1.1  joerg if [ -n "${do_check_pattern}" ]; then
    118  1.1  joerg 	if [ -n "${do_check_installed}" ]; then
    119  1.1  joerg 		echo "Only one of -F, -n or -p is interpreted at a time." >& 2
    120  1.1  joerg 		usage 1 2
    121  1.1  joerg 	fi
    122  1.1  joerg 	exec ${pkg_admin} ${do_pkgdb} ${do_verbose} ${do_quiet} audit-pkg \
    123  1.1  joerg 	    ${do_eol} ${do_limit_type} ${do_check_pattern}
    124  1.1  joerg fi
    125  1.1  joerg 
    126  1.1  joerg # If do_check_installed is empty, all packages are checked.
    127  1.1  joerg exec ${pkg_admin} ${do_pkgdb} ${do_verbose} ${do_quiet} audit \
    128  1.1  joerg     ${do_eol} ${do_limit_type} ${do_check_installed}
    129