#!/usr/bin/env bash YARA=$(type -P yara) CONFIG_PATH='/etc/phpmalwarefinder/malwares.yara' IONICE_BIN=$(type -P ionice) NICE_BIN=$(type -P nice) if [ ! -f "$YARA" ] then YARA='./yara' fi if [ ! -f "$CONFIG_PATH" ] then CONFIG_PATH='./malwares.yara' fi if [ -f "${IONICE_BIN}" ] then NICE=${IONICE_BIN} NICE_OPTS="-c 3" else if [ -f "${NICE_BIN}" ] then NICE=${NICE_BIN} NICE_OPTS="-n 20" fi fi show_help() { cat << EOF Usage ${0##*/} [-cfhw] ... -c Optional path to a configuration file -f Fast mode -h Show this help message -v Verbose mode EOF } OPTIND=1 while getopts "c:fhv" opt; do case "$opt" in h) show_help exit 0 ;; f) OPTS="${OPTS} -f" ;; c) CONFIG_PATH=${OPTARG} ;; v) OPTS="${OPTS} -s" ;; '?') show_help exit 1 ;; esac done shift "$((OPTIND-1))" if [ ! -e ${YARA} ] then echo "Can't find yara. Did you installed it?" exit 1 fi if [ ! -e ${CONFIG_PATH} ] then echo "${CONFIG_PATH} doesn't exist. Please give me a valid file." exit 1 fi if [ -z $@ ] then show_help exit 1 fi if [ ! -e ${NICE} ] then echo "No nice program available. Please install ionice or nice." exit 1 fi OPTS="${OPTS} -r ${CONFIG_PATH}" ${NICE} ${NICE_OPTS} $YARA $OPTS $@