-
Notifications
You must be signed in to change notification settings - Fork 289
uninstall --all apps #511
Copy link
Copy link
Description
Is your feature request related to a problem? Please describe.
When testing, bootstrapping and reinstalling a machine, I'd like to have the ability to uninstall all apps from a single command.
Describe the solution you'd like
Something similar to the function below, that I've been currently using.
function mas-nuke {
sudo -v
while IFS= read -r LINE; do
APP_ID=$(echo $LINE | awk '{print $1;}');
#sudo mas uninstall $ID; # fails, issue with `mas` package
APP_DRY=$(mas uninstall $APP_ID --dry-run)
APP_DATA=$(echo $APP_DRY | head -n1)
APP_PATH=$(echo '/'${APP_DATA#*/})
#APP_NAME=$(echo $APP_DATA | cut -d "/" -f 1)
echo "Uninstalling" $APP_PATH " ..."
sudo chown $(id -un) $APP_PATH # change ownership to user
trash $APP_PATH
done <<< "$(mas list)" # Feed list into loop
With the change in ownership, I was able to not require sudo and send the app to the user trash, not the root one.
Note: sending to the trash relies on brew install trash.
Describe alternatives you've considered
A similar function could be defined with rm instead of trash.
Also, the current implementation does not "appclean" the mac. It only uninstalls the app, but all associated files stay. A more thorough function could be implemented with mdfind.
Additional context
(none)
Reactions are currently unavailable