40 | | An interactive tool would ask for user input to resolve many situations that cause port(1) to simply error out. For example, if you try to install a port and one of its dependencies conflicts with something already installed, it could ask if you want to deactivate the installed one and its dependents. |
| 40 | An interactive tool would ask for user input to resolve many situations that cause port(1) to simply error out. |
| 41 | |
| 42 | All the suggested interactivity use cases are listed below- |
| 43 | |
| 44 | 1. If you try to install a port and one of its dependencies conflict with something already installed, it could ask if you want to |
| 45 | deactivate the installed one and its dependents and reactivate them after the build. |
| 46 | 2. When trying to install a port but one of the files installed by this port is already present, ask the user whether the file should be |
| 47 | overwritten. |
| 48 | 3. When a user tries to install a port, display a list of ports that will be installed as dependencies and ask for confirmation (unless |
| 49 | there aren't any dependencies to be installed), like apt-get does. |
| 50 | 4. Asking for permission in a situation where uninstalling a package will break another package that's still installed and depends on |
| 51 | the to-be-uninstalled package. |
| 52 | 5. When installing a port that requires a dependency to have a certain variant, but this variant is not set. Ask the user if it should |
| 53 | reinstall the dependency with that variant. |
| 54 | 6. When activate is ambiguous, present a list of installed ports for the user to choose from. |
| 55 | 7. Ask user before rebuilding in rev-upgrade. |
| 56 | 8. When a user uninstalls a port using --follow-dependencies, the list of dependencies will be displayed and the user will be asked for |
| 57 | confirmation. |