topgrade-rs / topgrade

Upgrade all the things
GNU General Public License v3.0
1.74k stars 117 forks source link

Add Microsoft Autoupdate on MacOS #694

Open gjannece opened 4 months ago

gjannece commented 4 months ago

There is a Autoupdater for Microsoft Office applications. When exploring the app, I found that there is a CLI version at: "/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate"

When you run the command, get the nice info below: ERROR: No command specified

usage: msupdate [ ...] Commands: -h | --help Show usage information -c | --config Display current AutoUpdate configuration -l | --list List available updates for installed Microsoft applications -i | --install Download and install available updates Modifiers: -a | --apps Install specific application updates -v | --version Only update to a specific version -w | --wait Number of seconds to wait for action to complete before returning the current state of the install command -f | --format Format output results in the specified format p | plist Property list format -t | --terminate Number of seconds to wait before closing opened applications in order for updates to complete -m | --message Optional message to display on macOS banner notification to notify user Examples:

  1. List all available updates: msupdate --list
  2. Download and install all available updates: msupdate --install
  3. Download and install latest available updates for , and : msupdate --install --apps
  4. Download and install update xx.yy.YYMMDDXX: msupdate --install --apps --version xx.yy.YYMMDDXX
  5. Download and install latest available updates for and wait for seconds before closing opened applications and display on macOS banner notification to notify user msupdate --install --apps -t -m

Cound be an easy new feature.

SteveLauC commented 4 months ago

Implemented in #695, but I cannot give you a macOS build to test since I am not a macOS user, please build from source against my branch in order to test it locally.

gjannece commented 4 months ago

On my system it shows that the path to msupdate is failing. I'm currently getting this error using "topgrade --only msupdate".

`── 19:20:53 - Summary ────────────────────────────────────────────────────────── msupdate: SKIPPED: Path "/Library/Application\ Support/Microsoft/MAU2.0/Microsoft\ AutoUpdate.app/Contents/MacOS/msupdate" doesn't exist

/Library/Application\ Support/Microsoft/MAU2.0/Microsoft\ AutoUpdate.app/Contents/MacOS/msupdate

ERROR: No command specified

usage: msupdate [ ...] Commands: -h | --help Show usage information -c | --config Display current AutoUpdate configuration -l | --list List available updates for installed Microsoft applications -i | --install Download and install available updates Modifiers: -a | --apps Install specific application updates -v | --version Only update to a specific version -w | --wait Number of seconds to wait for action to complete before returning the current state of the install command -f | --format Format output results in the specified format p | plist Property list format -t | --terminate Number of seconds to wait before closing opened applications in order for updates to complete -m | --message Optional message to display on macOS banner notification to notify user Examples:

  1. List all available updates: msupdate --list
  2. Download and install all available updates: msupdate --install
  3. Download and install latest available updates for , and : msupdate --install --apps
  4. Download and install update xx.yy.YYMMDDXX: msupdate --install --apps --version xx.yy.YYMMDDXX
  5. Download and install latest available updates for and wait for seconds before closing opened applications and display on macOS banner notification to notify user msupdate --install --apps -t -m `

This is my first try with rust, but I think it have it working right. Let me know how I can help.

SteveLauC commented 4 months ago

Oh, I am sorry, it is my fault

SteveLauC commented 4 months ago

It should work now, I have fixed the wrong binary path in https://github.com/topgrade-rs/topgrade/pull/695/commits/842feaf2100ebfdeea8a249fc1aaf90219c5aeea

gjannece commented 4 months ago

I am trying to figure out the issue, but when you run the command it just sits and waits for a response. I'm looking into this. I'll need one more day of testing to see if I can fix this. Thanks

SteveLauC commented 4 months ago

I am trying to figure out the issue, but when you run the command it just sits and waits for a response. I'm looking into this.

Does this happen if you directly run the underlying command in your shell? i.e.,

$ /Library/Application\ Support/Microsoft/MAU2.0/Microsoft\ AutoUpdate.app/Contents/MacOS/msupdate --install
gjannece commented 4 months ago

Sorry for the delay, I wanted to verify a few things first. You can official close / delete this feature request. I didn't know it at the time, but the msupdate starts a daemon and doesn't exit. This makes it a horrible canidate for topgrade to run it. Thanks for your quick work on this Pull Request.