#!/usr/bin/bash
# Atomicorp, Inc
# Copyrigth 2024
# Summary: freshclam wrapper


# Globals
SIG_DIR="/var/lib/clamav/"
TEMP_DIR="/tmp/clamav_downloads"

###########
# Functions
###########
source /var/ossec/lib/atomicorp-functions.sh

######
# Main
######
if [ -d /var/ossec/queue/sockets/ ]; then
        AGENT_INFO_PATH=/var/ossec/queue/sockets/
elif [ -d /var/ossec/queue/ossec/ ]; then
        AGENT_INFO_PATH=/var/ossec/queue/ossec/
fi

ID=$(sed '3q;d' ${AGENT_INFO_PATH}/.agent_info)

if [ -f /var/ossec/etc/shared/${ID}.malware-detection ]; then
    CONFIG_FILE="/var/ossec/etc/shared/${ID}.malware-detection"
elif [ -f /var/ossec/etc/shared/malware-detection ]; then
    CONFIG_FILE="/var/ossec/etc/shared/malware-detection"
else
    echo "Neither ${ID}.malware-detection nor malware-detection found."
    exit 1
fi


get_freshclam_conf

# Pull from the hub server
if [[ $FRESHCLAM_FEED_TYPE == "hub" ]]; then

    get_hub_ip
    SERVER="https://${HUB_IP}/channels/rules/anti-malware/"

    if [[ ${TEMP_DIR} == "/" ]]; then
        echo "TEMP_DIR is set to /, aborting"
        exit 1
    fi
    if [ -d $TEMP_DIR ]; then
        rm -rf ${TEMP_DIR}
    fi
    mkdir -p ${TEMP_DIR}

    if [[ ${FRESHCLAM_LINUX_SIGS} == "yes" ]]; then

        EXTENSIONS="fp hdb hdu hsb hsu idb ign2 ldb ldu ndb ndu sfp"
        for ext in $EXTENSIONS; do
            download -k ${SERVER}/Atomicorp-Linux.${ext}  $TEMP_DIR/Atomicorp-Linux.${ext}
            if [ $? -ne 0 ]; then
                exit 1
            fi
        done

        if [[ ${SIG_DIR} == "/" ]]; then
            echo "SIG_DIR is set to /, aborting"
            exit 1
        fi
        rm -rf ${SIG_DIR}/*
        cp ${TEMP_DIR}/* ${SIG_DIR}/
        rm -rf ${TEMP_DIR}
        chown -R ${CLAMAV_OWNER}:${CLAMAV_GROUP} ${SIG_DIR}/*

        
    fi
else
    /usr/bin/freshclam
fi


