Skip to content

uninstall --all apps #511

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

Labels

No fields configured for Feature.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions