Skip to content

uninstall --all apps #511

@tplobo

Description

@tplobo

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)

Metadata

Metadata

Assignees

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions