Skip to content

upgrade excluding apps #723

Closed as duplicate of#386
Closed as duplicate of#386
@alwinsamson

Description

@alwinsamson

Problem(s) addressed

Currently, mas upgrade upgrades all outdated apps, and the only way to limit upgrades is to manually specify app IDs. However, there is no built-in way to exclude certain apps from being upgraded.

For users who want to skip certain app updates, they must manually retrieve the outdated app list and filter out unwanted apps before running mas upgrade, which is inefficient.

Example of the current workaround:

## List outdated apps
$ mas outdated
123456789  AppOne (1.0 -> 1.1)
987654321  AppTwo (2.0 -> 2.1)
555666777  AppThree (3.0 -> 3.1)

## Upgrade only selected apps (manual filtering)
$ mas upgrade 555666777

This process is not user-friendly and requires extra steps for something that could be built into the tool.

Proposed solution(s)

Introduce an --exclude flag for mas upgrade, allowing users to specify apps they want to skip. For example:

## Upgrade all apps except AppOne (123456789) and AppTwo (987654321)
$ mas upgrade --exclude 123456789,987654321

Alternatively, provide an environment variable or a configuration file where users can specify globally excluded apps.

Alternative solution(s)

Allow mas outdated to support an --exclude flag, filtering out unwanted apps before displaying the list:

## Show outdated apps, excluding AppOne and AppTwo
$ mas outdated --exclude 123456789,987654321

Introduce an mas ignore command to permanently exclude apps until the user removes them from the ignore list:

## Ignore AppOne from future upgrades
$ mas ignore 123456789

## View ignored apps
$ mas ignore --list

## Remove AppOne from ignore list
$ mas ignore --remove 123456789

Support a ~/.mas_exclude config file that contains a list of excluded app IDs.

Additional context

Additional Context

  • The ability to exclude apps is useful for users who:
    • Need to delay specific updates (e.g., waiting for stability).
    • Have apps installed via mas but prefer manual updates for certain ones.
    • Want to automate upgrades without worrying about specific exclusions every time.
  • brew (Homebrew) provides an exclude feature via brew pin, which serves a similar purpose. Implementing a version of this for mas would improve usability.

This request would make mas upgrade more flexible and user-friendly, reducing the need for external scripting or workarounds.

Would love to hear your thoughts on feasibility! Thanks! 🙌

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions