diff --git a/config.example.toml b/config.example.toml index b5afade3..3f07302f 100644 --- a/config.example.toml +++ b/config.example.toml @@ -120,6 +120,12 @@ # both of them, they won't clash with each other. # greedy_latest = true +# For the BrewCask step +# If `Repo Cask Upgrade` does not exist, then use the `--greedy_auto_updates` option. +# NOTE: the above entry `greedy_cask` contains this entry, though you can enable +# both of them, they won't clash with each other. +# greedy_auto_updates = true + # For the BrewFormula step # Execute `brew autoremove` after the step. # autoremove = true @@ -254,7 +260,7 @@ # runtime = "podman" [lensfun] -# If disabled, Topgrade invokes `lensfun‑update‑data` without root priviledge, +# If disabled, Topgrade invokes `lensfun‑update‑data` without root priviledge, # then the update will be only available to you. Otherwise, `sudo` is required, # and the update will be installed system-wide, i.e., available to all users. # (default: false) diff --git a/src/config.rs b/src/config.rs index d129c7c7..4a4c3105 100644 --- a/src/config.rs +++ b/src/config.rs @@ -271,6 +271,7 @@ pub struct Flatpak { pub struct Brew { greedy_cask: Option, greedy_latest: Option, + greedy_auto_updates: Option, autoremove: Option, fetch_head: Option, } @@ -1179,6 +1180,15 @@ impl Config { .unwrap_or(false) } + /// Whether Brew cask should be auto_updates + pub fn brew_greedy_auto_updates(&self) -> bool { + self.config_file + .brew + .as_ref() + .and_then(|c| c.greedy_auto_updates) + .unwrap_or(false) + } + /// Whether Brew should autoremove pub fn brew_autoremove(&self) -> bool { self.config_file diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index 41dd3cc2..f66f2b6c 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -380,6 +380,9 @@ pub fn run_brew_cask(ctx: &ExecutionContext, variant: BrewVariant) -> Result<()> if ctx.config().brew_greedy_latest() { brew_args.push("--greedy-latest"); } + if ctx.config().brew_greedy_auto_updates() { + brew_args.push("--greedy-auto-updates"); + } } variant.execute(run_type).args(&brew_args).status_checked()?;