From f7b4c5e2bb84b4d27ba37078e9cc9ab2af07d172 Mon Sep 17 00:00:00 2001 From: Matt Kiazyk Date: Wed, 13 Apr 2022 21:34:03 -0500 Subject: [PATCH] Make Symbolic Link on Xcode Select --- Xcodes/Backend/AppState.swift | 12 +++++++++++- .../Preferences/AdvancedPreferencePane.swift | 15 ++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Xcodes/Backend/AppState.swift b/Xcodes/Backend/AppState.swift index 8f38ca7..89a43ac 100644 --- a/Xcodes/Backend/AppState.swift +++ b/Xcodes/Backend/AppState.swift @@ -68,7 +68,13 @@ class AppState: ObservableObject { Current.defaults.set(unxipExperiment, forKey: "unxipExperiment") } } - + + @Published var createSymLinkOnSelect = false { + didSet { + Current.defaults.set(createSymLinkOnSelect, forKey: "createSymLinkOnSelect") + } + } + // MARK: - Publisher Cancellables var cancellables = Set() @@ -489,6 +495,10 @@ class AppState: ObservableObject { if case let .failure(error) = completion { self.error = error self.presentedAlert = .generic(title: "Unable to select Xcode", message: error.legibleLocalizedDescription) + } else { + if self.createSymLinkOnSelect { + createSymbolicLink(xcode: xcode) + } } self.selectPublisher = nil }, diff --git a/Xcodes/Frontend/Preferences/AdvancedPreferencePane.swift b/Xcodes/Frontend/Preferences/AdvancedPreferencePane.swift index 9868e6f..7005d61 100644 --- a/Xcodes/Frontend/Preferences/AdvancedPreferencePane.swift +++ b/Xcodes/Frontend/Preferences/AdvancedPreferencePane.swift @@ -43,7 +43,20 @@ struct AdvancedPreferencePane: View { .font(.footnote) .fixedSize(horizontal: false, vertical: true) } - + } + .groupBoxStyle(PreferencesGroupBoxStyle()) + + GroupBox(label: Text("Active/Select")) { + VStack(alignment: .leading) { + Toggle( + "Automatically create symbolic link to Xcodes.app", + isOn: $appState.createSymLinkOnSelect + ) + Text("When making an Xcode version Active/Selected, try and create a symbolic link named Xcode.app in the installation directory") + .font(.footnote) + .fixedSize(horizontal: false, vertical: true) + } + .fixedSize(horizontal: false, vertical: true) } .groupBoxStyle(PreferencesGroupBoxStyle())