47 lines
2.2 KiB
Bash
47 lines
2.2 KiB
Bash
#!/usr/bin/env bash
|
|
# @file ClamAV Configuration
|
|
# @brief Applies ClamAV configuration, updates its database, and configures background services
|
|
|
|
if command -v freshclam > /dev/null; then
|
|
### Add freshclam.conf
|
|
if [ -f "$HOME/.local/etc/clamav/freshclam.conf" ]; then
|
|
sudo mkdir -p /usr/local/etc/clamav
|
|
sudo cp -f "$HOME/.local/etc/clamav/freshclam.conf" /usr/local/etc/clamav/freshclam.conf
|
|
if [ -d "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/clamav" ] && [ ! -f "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/clamav/freshclam.conf" ]; then
|
|
ln -s /usr/local/etc/clamav/freshclam.conf "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/clamav/freshclam.conf"
|
|
fi
|
|
fi
|
|
|
|
### Add clamd.conf
|
|
if [ -f "$HOME/.local/etc/clamav/clamd.conf" ]; then
|
|
sudo mkdir -p /usr/local/etc/clamav
|
|
sudo cp -f "$HOME/.local/etc/clamav/clamd.conf" /usr/local/etc/clamav/clamd.conf
|
|
if [ -d "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/clamav" ] && [ ! -f "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/clamav/clamd.conf" ]; then
|
|
ln -s /usr/local/etc/clamav/clamd.conf "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/clamav/clamd.conf"
|
|
fi
|
|
fi
|
|
|
|
### Setting up launchd services on macOS
|
|
if [ -d /Applications ] && [ -d /System ]; then
|
|
sudo mkdir -p /var/log/clamav
|
|
# sudo chown $USER /var/log/clamav
|
|
sudo cp -f "$HOME/.local/etc/clamav/clamdscan.plist" /Library/LaunchDaemons/clamdscan.plist
|
|
sudo cp -f "$HOME/.local/etc/clamav/freshclam.plist" /Library/LaunchDaemons/freshclam.plist
|
|
if sudo launchctl list | grep 'clamav.clamdscan' > /dev/null; then
|
|
logg info 'Unloading previous ClamAV clamdscan configuration'
|
|
sudo launchctl unload /Library/LaunchDaemons/clamdscan.plist
|
|
fi
|
|
sudo launchctl load -w /Library/LaunchDaemons/clamdscan.plist
|
|
if sudo launchctl list | grep 'clamav.freshclam' > /dev/null; then
|
|
logg info 'Unloading previous ClamAV freshclam configuration'
|
|
sudo launchctl unload /Library/LaunchDaemons/freshclam.plist
|
|
fi
|
|
logg info 'Running sudo launchctl load -w /Library/LaunchDaemons/freshclam.plist'
|
|
sudo launchctl load -w /Library/LaunchDaemons/freshclam.plist
|
|
fi
|
|
|
|
### Update database
|
|
freshclam
|
|
else
|
|
logg info 'freshclam is not available in the PATH'
|
|
fi
|