pentoo-overlay/dev-go/go-cve-dictionary/files/go-cve-dictionary.initd

72 lines
1.8 KiB
Text

#!/sbin/openrc-run
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
GCD_DBPATH="${GCD_DBPATH:-/var/lib/vuls/cve.sqlite3}"
GCD_DBTYPE="${GCD_DBTYPE:-sqlite3}"
GCD_LOGDIR="${GCD_LOGDIR:-/var/log/vuls}"
GCD_START_PERIOD="${GCD_START_PERIOD:-2002}"
GCD_END_PERIOD="${GCD_END_PERIOD:-$(date +%Y)}"
USER="vuls"
GROUP="vuls"
description="Using go-cve-dictionary as server mode"
command="/usr/lib/go-gentoo/bin/go-cve-dictionary"
command_background="true"
command_user="${USER}:${GROUP}"
command_args="server
-bind=${GCD_HOST:-127.0.0.1}
-port=${GCD_PORT:-1323}
-dbpath=${GCD_DBPATH}
-dbtype=${GCD_DBTYPE}
-log-dir=${GCD_LOGDIR}
${GCD_OPTS}"
pidfile="/run/${RC_SVCNAME}.pid"
retry="TERM/25/KILL/5"
start_stop_daemon_args="--quiet -1 ${GCD_LOGDIR}/cve-dictionary.log -2 ${GCD_LOGDIR}/cve-dictionary.log"
extra_commands="checkconfig fetchnvd fetchjvn"
depend() {
need net
}
_update_cve_database() {
local dict_fetch_command="${1}"
ebegin "Updating CVE database. Please, wait (It takes about 10 minutes)"
for i in `seq ${GCD_START_PERIOD} ${GCD_END_PERIOD}`; do
einfo "Fetching at ${i} using: ${dict_fetch_command}"
/bin/su -s /bin/sh -c "${command} ${dict_fetch_command} \
-dbpath=${GCD_DBPATH} \
-dbtype=${GCD_DBTYPE} \
-log-dir=${GCD_LOGDIR} \
-years ${i}" ${USER}
done
eend ${?} "Failed to update a CVE database: ${GCD_DBPATH}"
}
checkconfig() {
if ! [ -f "${GCD_DBPATH}" ]; then
eerror "You need update CVE database \"${GCD_DBPATH}\" to run ${RC_SVCNAME}:"
eerror " ~# rc-service ${RC_SVCNAME} {fetchnvd,fetchjvn}"
return 1
fi
}
fetchnvd() {
_update_cve_database ${FUNCNAME[0]} || return 1
}
fetchjvn() {
_update_cve_database ${FUNCNAME[0]} || return 1
}
start_pre() {
checkconfig || return 1
}
# vim: set ft=gentoo-init-d ts=4 :