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