@samueljohn Maybe catch this in the block of self.install? That way it will retain the original behavior.

@jacknagel AIUI FormulaAlreadyInstalledError takes care of that. One situation that I found to raise CannotInstallFormulaError is when one of the dependencies of foo is not linked. In that case the install process will abort instead.

On a second thought, for install I guess in that case continuing the installation might scroll over and user can miss the message. May be helpful to either let it stop like this, or print a summary that list all formulae that has failed. I kind of prefer the former, as it's easier for user to see the message about why install foo failed.