public override async Task<bool> Install () { var runner = new BrewRunner (Context.Instance); if (!String.IsNullOrEmpty (HomebrewTapName)) { if (!await runner.Tap (HomebrewTapName)) return false; } bool install = !InstalledButWrongVersion; bool success; if (multipleVersionsPickle) { Log.InfoLine ($"{Name} has multiple versions installed, let's get out of this pickle"); // 1. unpin success = await runner.UnPin (Name); // 2. unlink success = await runner.Unlink (Name); // 3. uninstall --ignore-dependencies success = await runner.Uninstall (Name, ignoreDependencies: true, force: true); install = true; } string installName = HomebrewFormulaUrl != null ? HomebrewFormulaUrl.ToString () : Name; if (!install) { success = await runner.Upgrade (installName); } else success = await runner.Install (installName); if (!success || !Pin) return success; return await runner.Pin (Name); }
public override async Task <bool> Install() { var runner = new BrewRunner(Context.Instance); if (!String.IsNullOrEmpty(HomebrewTapName)) { if (!await runner.Tap(HomebrewTapName)) { return(false); } } bool success; if (InstalledButWrongVersion) { if (HomebrewFormulaUrl != null) { success = await runner.Upgrade(HomebrewFormulaUrl.ToString()); } else { success = await runner.Upgrade(Name); } } else { success = await runner.Install(Name); } if (!success || !Pin) { return(success); } return(await runner.Pin(Name)); }