virusscan contextual menu item with Automator
Right-click on a file or folder and select Automator -> virusscan to scan the selected Finder item for viruses.
Requires Automator (Mac OS X 10.4 or later), ClamAV (man clamdscan) and CocoaDialog (for the notification pop-up).
Requires Automator (Mac OS X 10.4 or later), ClamAV (man clamdscan) and CocoaDialog (for the notification pop-up).
# get the ClamAV icon cd ~/Desktop curl -L -O http://freshmeat.net/redir/clamav/29355/url_tgz/clamav-0.92.tar.gz tar -xzf clamav-0.92.tar.gz cd clamav-0.92 sudo cp ~/Desktop/clamav-0.92/docs/html/img2.png /usr/local/bin/CocoaDialog.app/Contents/Resources/clamav.png #sudo sips -i /usr/local/bin/CocoaDialog.app/Contents/Resources/clamav.png sudo chown -R root:wheel /usr/local/bin/CocoaDialog.app sudo chmod -R 0755 /usr/local/bin/CocoaDialog.app open -a Automator #---------------------------------------------------- Drag or add actions here to build your workflow: Library: Finder -> Action: Get Selected Finder Items Library: Automator -> Action: Run Shell Script - Shell: /bin/bash - Pass input: as arguments cocoadialog="/usr/local/bin/CocoaDialog.app/Contents/MacOS/CocoaDialog" CD_Resources="/usr/local/bin/CocoaDialog.app/Contents/Resources" for f in "$@"; do /opt/local/bin/clamdscan --quiet "$f" 2>/dev/null return_code=$? if [[ $return_code -eq 0 ]]; then /usr/bin/say OK $cocoadialog bubble --no-timeout --x-placement center --y-placement center --background-top "00FF00" \ --background-bottom "00FF99" --icon-file $CD_Resources/clamav.png --title "Scanned item is OK!" \ --text "$f" elif [[ $return_code -eq 1 ]]; then /usr/bin/say "virus alert" $cocoadialog bubble --no-timeout --x-placement center --y-placement center --background-top "FF0000" \ --background-bottom "FF0066" --icon-file $CD_Resources/clamav.png --title "WARNING: VIRUS ALERT!!!" \ --text "$f" else $cocoadialog bubble --no-timeout --x-placement center --y-placement center --background-top "FFCC00" \ --background-bottom "FFCC33" --icon-file $CD_Resources/clamav.png --title "ClamAV virus scan failed!" \ --text "Please, check your ClamAV setup! Return code of man clamdscan: $return_code" exit 1 fi done exit 0 #---------------------------------------------------- # save the virusscan Automator workflow as a contextual menu item Automator -> File -> Save As Plug-in ... -> Save Plug-in As: virusscan -> Plug-in for: Finder -> Save open ~/Library/Workflows/Applications/Finder/virusscan.workflow # test some files in ... open ~/Desktop/clamav-0.92/test