Some packages require a EULA to be accepted before commencing the download of the product. But I have noticed no such functionality is present. There should be an option to provide a EULA/TOS source url or file that will be presented before the download of the file begins that will be accepted by the end user.
My thoughts would be that we can have something like a "EULAUrl" or "TermsURL" that will point to the products EULA or Terms, that will be shown in some kind of pager inside the terminal that will allow accepting or declining. If you accept, download commences and process continues as normal. If declined, just exit.
Also maybe a flag to auto-accept the EULA for purposes of automation.
Wouldn't this be problematic when running winget as part of a script? You're not guaranteed to have an interactive shell
It would only be problematic if the package you are trying to script against uses the flag, in which case you probably were not scripting that before this anyway no? since it would imply that the package required users to agree to the EULA/Terms before download anyway
I might have accepted the EULA before creating my script, but if I give my script to a friend who has not accepted the EULA, then that might be a problem 馃槙 .
Another solution might be to add a --accept-licenses flag which auto-accepts the EULAs and prints something like By using the --accept-licenses flag, you agree to the following terms and conditions followed by links to the relevant EULAs. This isn't perfect but would solve the interactivity-in-non-interactive-use-cases issue.
It's kind of what I meant with my last sentence of having a flag for automation.
With proper messaging like krism suggested, it could work well enough. Similar to how Oracle JDK works on Linux even. You have to accept licenses to use it but has a flag for automation to auto accept.
This is mostly to distribute software that requires it, its optional and doesn't need to be used for everything.
This is something we have been discussing internally. I do not believe I managed to create an issue for it already. I'm interested in the discussion here. So far it's similar to early thoughts the team had.
If there were a flag in the manifest, the user experience could be improved either with some form of "strict" mechanism requiring user interaction, and / or prioritizing the EULA prompts for download on package set (<- current conceptual name for a collection of packages) initiation. If one were to specify the entire set needed to be 100% unattended, we could fail on manifests that have a EULA required for download.
We have observed EULA prompts prior to download, at install time, and on first launch. Our goals are not to prescribe how software publishers handle their EULAs. We want to focus on providing the best user experience with the client given the various options.
Most helpful comment
It's kind of what I meant with my last sentence of having a flag for automation.
With proper messaging like krism suggested, it could work well enough. Similar to how Oracle JDK works on Linux even. You have to accept licenses to use it but has a flag for automation to auto accept.
This is mostly to distribute software that requires it, its optional and doesn't need to be used for everything.