topgrade icon indicating copy to clipboard operation
topgrade copied to clipboard

Add Microsoft Autoupdate on MacOS

Open gjannece opened this issue 1 year ago • 7 comments

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 <App1>, <App2> and <App3>: msupdate --install --apps <App1> <App2> <App3> 4. Download and install <App> update xx.yy.YYMMDDXX: msupdate --install --apps <App> --version xx.yy.YYMMDDXX 5. Download and install latest available updates for <App> and wait for seconds before closing opened applications and display on macOS banner notification to notify user msupdate --install --apps <App> -t -m

Cound be an easy new feature.

gjannece avatar Feb 15 '24 23:02 gjannece

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.

SteveLauC avatar Feb 16 '24 02:02 SteveLauC

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 <App1>, <App2> and <App3>: msupdate --install --apps <App1> <App2> <App3> 4. Download and install <App> update xx.yy.YYMMDDXX: msupdate --install --apps <App> --version xx.yy.YYMMDDXX 5. Download and install latest available updates for <App> and wait for seconds before closing opened applications and display on macOS banner notification to notify user msupdate --install --apps <App> -t -m `

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

gjannece avatar Feb 18 '24 01:02 gjannece

Oh, I am sorry, it is my fault

SteveLauC avatar Feb 18 '24 06:02 SteveLauC

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

SteveLauC avatar Feb 18 '24 06:02 SteveLauC

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

gjannece avatar Feb 22 '24 23:02 gjannece

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

SteveLauC avatar Feb 23 '24 00:02 SteveLauC

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.

gjannece avatar Feb 29 '24 06:02 gjannece