Skip to content

Instantly share code, notes, and snippets.

@kigster
Created March 5, 2019 05:16
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kigster/ff6c8cecde62c4cc2eb2650620a1a0d8 to your computer and use it in GitHub Desktop.
Save kigster/ff6c8cecde62c4cc2eb2650620a1a0d8 to your computer and use it in GitHub Desktop.
Script to find and remove FabFilter plugins on Mac OS-X. Requires Terminal usage.
#!/usr/bin/env bash
if [[ ! -L lib || ! -L bootstrap ]]; then
[[ -z $(which curl) ]] && {
printf "Curl is required for this operation. Please install it with\n"
printf "brew install curl\n"
exit 1
}
curl -fsSL "http://bit.ly/bashmatic-bootstrap" | /usr/bin/env bash
fi
[[ -f lib/Loader.bash ]] && source lib/Loader.bash
export find_command=
export fabfilter_backup_location="/tmp/fabfilter"
export dry_run=0
export prefix=""
usage() {
printf "\nUSAGE:\n"
printf " $0 [ uninstall | delete | remove ] [ -n | --dry-run ] \n"
printf " $0 [ show | list ] [ -n | --dry-run ]\n"
printf " $0 [ backup ] [ -n | --dry-run ]\n\n"
printf "\nDESCRIPTION\n"
printf " This script removes all files related to the FabFilter Plugins\n"
printf " on a Mac, based on the FAQ instructions here:\n"
printf " https://www.fabfilter.com/support/faq/#how-do-i-completely-uninstall-plug-ins-from-my-system\n\n"
printf "\nCOMMANDS:\n"
printf " show | list — print all folders and files related to FabFilter\n"
printf " uninstall | delete | remove — delete all of the matching files\n"
printf " backup — copy all related files to a temp folder\n\n"
printf "\nFLAGS:\n"
printf " -n | --dry-run — instead of running the commands, print them\n"
echo
exit 0
}
while :; do
case $1 in
-n|--dry-run)
shift
export dry_run=1
;;
uninstall|delete|remove)
shift
export prefix="sudo "
echo "Uninstalling FabFilter Files..."
export find_command=' -exec rm -rvf {} \; -print '
;;
backup)
shift
echo "Backing Up FabFilter Files to ${fabfilter_backup_location}..."
mkdir -p ${fabfilter_backup_location}
export find_command=" -exec cp -rvp {} ${fabfilter_backup_location} \\; -print"
;;
show|list)
shift
echo "Showing FabFilter files to be deleted..."
export find_command=' -print '
;;
-h|--help)
shift
;;
*)
break
;;
esac
done
declare -a FF_Dirs=(
"/Library/Audio/Plug-Ins/Components"
"/Library/Audio/Plug-Ins/VST"
"/Library/Audio/Plug-Ins/VST3"
"/Library/Application Support/Avid/Audio/Plug-Ins"
"/Library/Application Support/Digidesign/Plug-Ins"
)
declare -a FF_Prefs=(
"/Users/${USER}/Library/Audio/Presets"
"/Users/${USER}/Library/Application Support"
)
set +e
(( ${dry_run} )) && export prefix="echo ${prefix}"
for dir in "${FF_Dirs[@]}" "${FF_Prefs[@]}"; do
if [[ -d "${dir}" && -n $(find "${dir}" -name "FabFilter*" -depth 1 -type d) ]]; then
command="find \"${dir}\" -name 'FabFilter*' -depth 1 -type d ${find_command}"
eval "${prefix} ${command}" 2>/dev/null
fi
done
dir="/Users/${USER}/Library/Preferences"
command="find \"${dir}\" -name 'com.fabfilter.*' -depth 1 -type f ${find_command}"
eval "${prefix} ${command}" 2>/dev/null
@kigster
Copy link
Author

kigster commented Mar 5, 2019

To run this script, download it, then open Terminal and run:

cd ~/Downloads
chmod 755 fabfilter-remover.sh

# this will show existing FabFilter files
./fabfilter-remover.sh show

# this will back them up to /tmp/fabfilter
./fabfilter-remover.sh backup

# finally, this will remove them all:
./fabfilter-remover.sh remove

@CodeMaster-inc
Copy link

Thanks for this man. Out of interest, why does it need to access my contacts?

@kigster
Copy link
Author

kigster commented Dec 17, 2021

Does it? No idea.

@ferahn
Copy link

ferahn commented Mar 22, 2022

Does this script also reset the product trials? 🙊

Copy link

ghost commented May 4, 2023

Amazing, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment