diff --git a/phpmon/Domain/DomainList/DomainListVC+Actions.swift b/phpmon/Domain/DomainList/DomainListVC+Actions.swift index 2552e1c..ce2e386 100644 --- a/phpmon/Domain/DomainList/DomainListVC+Actions.swift +++ b/phpmon/Domain/DomainList/DomainListVC+Actions.swift @@ -108,6 +108,7 @@ extension DomainListVC { } } + #warning("ValetInteractor needs to be used here instead of directly issuing commands to valet") @objc func isolateSite(sender: PhpMenuItem) { let command = "sudo \(Paths.valet) isolate php@\(sender.version) --site '\(self.selectedSite!.name)' && exit;" @@ -128,6 +129,7 @@ extension DomainListVC { } } + #warning("ValetInteractor needs to be used here instead of directly issuing commands to valet") @objc func removeIsolatedSite() { self.performAction(command: "sudo \(Paths.valet) unisolate --site '\(self.selectedSite!.name)' && exit;") { self.selectedSite!.isolatedPhpVersion = nil @@ -153,7 +155,7 @@ extension DomainListVC { style: .critical, onFirstButtonPressed: { self.waitAndExecute { - Task { await Shell.quiet("valet unlink '\(site.name)'") } + Task { await site.unlink() } } completion: { Task { await self.reloadDomains() } } diff --git a/phpmon/Domain/Integrations/Valet/Domains/ValetInteractor.swift b/phpmon/Domain/Integrations/Valet/Domains/ValetInteractor.swift index 0e9722d..06bb3c4 100644 --- a/phpmon/Domain/Integrations/Valet/Domains/ValetInteractor.swift +++ b/phpmon/Domain/Integrations/Valet/Domains/ValetInteractor.swift @@ -13,7 +13,6 @@ struct ValetInteractionError: Error { var command: String } -#warning("ValetInteractor needs to be implemented and used") class ValetInteractor { static var shared = ValetInteractor() @@ -75,7 +74,7 @@ class ValetInteractor { } public func unlink(site: ValetSite) async throws { - // TODO + await Shell.quiet("valet unlink '\(site.name)'") } public func remove(proxy: ValetProxy) async throws { @@ -92,7 +91,13 @@ class FakeValetInteractor: ValetInteractor { site.secured = !site.secured } + override func unlink(site: ValetSite) async throws { + if let scanner = ValetScanners.siteScanner as? FakeSiteScanner { + scanner.fakes.removeAll { $0 === site } + } + } + override func remove(proxy: ValetProxy) async throws { - fatalError("This should remove the proxy") + #warning("A fake proxy scanner needs to be added") } } diff --git a/phpmon/Domain/Integrations/Valet/Sites/SiteScanner/FakeSiteScanner.swift b/phpmon/Domain/Integrations/Valet/Sites/SiteScanner/FakeSiteScanner.swift index a7c2cc7..f96f0c2 100644 --- a/phpmon/Domain/Integrations/Valet/Sites/SiteScanner/FakeSiteScanner.swift +++ b/phpmon/Domain/Integrations/Valet/Sites/SiteScanner/FakeSiteScanner.swift @@ -7,7 +7,7 @@ // class FakeSiteScanner: SiteScanner { - let fakes = [ + var fakes = [ FakeValetSite(fakeWithName: "laravel", tld: "test", secure: true, path: "~/Code/laravel/framework", linked: true), diff --git a/phpmon/Domain/Integrations/Valet/Sites/ValetSite.swift b/phpmon/Domain/Integrations/Valet/Sites/ValetSite.swift index b88863e..c05a987 100644 --- a/phpmon/Domain/Integrations/Valet/Sites/ValetSite.swift +++ b/phpmon/Domain/Integrations/Valet/Sites/ValetSite.swift @@ -273,7 +273,7 @@ class ValetSite: ValetListable { try await ValetInteractor.shared.isolate(site: self, version: version) } - func unlink() async throws { - try await ValetInteractor.shared.unlink(site: self) + func unlink() async { + try! await ValetInteractor.shared.unlink(site: self) } }