mirror of
https://github.com/maxgoedjen/secretive.git
synced 2025-09-16 09:20:56 +00:00
Cleanup
This commit is contained in:
parent
4d84621b3d
commit
ea96dd88eb
@ -3049,7 +3049,7 @@
|
||||
"Getting Started" : {
|
||||
|
||||
},
|
||||
"If you don't known what shell you use and haven't changed it, you're probably using `zsh`." : {
|
||||
"If you don't known what shell you use and haven't changed it, you're probably using `%@`." : {
|
||||
|
||||
},
|
||||
"If you're trying to authenticate with an SSH server or authenticating with a service like GitHub over SSH, configure your SSH client." : {
|
||||
|
@ -5,13 +5,12 @@ struct IntegrationsView: View {
|
||||
@Environment(\.dismiss) private var dismiss
|
||||
|
||||
@State private var selectedInstruction: ConfigurationFileInstructions?
|
||||
|
||||
private let socketPath = (NSHomeDirectory().replacingOccurrences(of: Bundle.hostBundleID, with: Bundle.agentBundleID) as NSString).appendingPathComponent("socket.ssh") as String
|
||||
private let instructions = Instructions()
|
||||
|
||||
var body: some View {
|
||||
NavigationSplitView {
|
||||
List(selection: $selectedInstruction) {
|
||||
ForEach(instructions) { group in
|
||||
ForEach(instructions.instructions) { group in
|
||||
Section(group.name) {
|
||||
ForEach(group.instructions) { instruction in
|
||||
Text(instruction.tool)
|
||||
@ -22,6 +21,33 @@ struct IntegrationsView: View {
|
||||
}
|
||||
}
|
||||
} detail: {
|
||||
IntegrationsDetailView(selectedInstruction: $selectedInstruction)
|
||||
}
|
||||
.onAppear {
|
||||
selectedInstruction = instructions.gettingStarted
|
||||
}
|
||||
.toolbar {
|
||||
ToolbarItem(placement: .primaryAction) {
|
||||
Button("Done") {
|
||||
dismiss()
|
||||
}
|
||||
.styled
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
struct IntegrationsDetailView: View {
|
||||
|
||||
@Binding private var selectedInstruction: ConfigurationFileInstructions?
|
||||
private let instructions = Instructions()
|
||||
|
||||
init(selectedInstruction: Binding<ConfigurationFileInstructions?>) {
|
||||
_selectedInstruction = selectedInstruction
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
if let selectedInstruction {
|
||||
switch selectedInstruction.id {
|
||||
case .gettingStarted:
|
||||
@ -30,20 +56,26 @@ struct IntegrationsView: View {
|
||||
Text("Most tools will try and look for SSH keys on disk in `~/.ssh`. To use Secretive, we need to configure those tools to talk to Secretive instead.")
|
||||
}
|
||||
Section {
|
||||
NavigationLink(value: ssh) {
|
||||
Group {
|
||||
Text("If you're trying to authenticate with an SSH server or authenticating with a service like GitHub over SSH, configure your SSH client.")
|
||||
.onTapGesture {
|
||||
self.selectedInstruction = instructions.ssh
|
||||
}
|
||||
NavigationLink(value: zsh) {
|
||||
VStack(alignment: .leading) {
|
||||
VStack(alignment: .leading, spacing: 5) {
|
||||
Text("If you're trying to configure anything your command line runs to use Secretive, configure your shell.")
|
||||
Text("If you don't known what shell you use and haven't changed it, you're probably using `zsh`.")
|
||||
Text("If you don't known what shell you use and haven't changed it, you're probably using `\(instructions.defaultShell.tool)`.")
|
||||
.font(.caption2)
|
||||
.foregroundStyle(.secondary)
|
||||
}
|
||||
.onTapGesture {
|
||||
self.selectedInstruction = instructions.defaultShell
|
||||
}
|
||||
NavigationLink(value: git) {
|
||||
Text("If you're trying to sign your git commits, set up Git Signing.")
|
||||
.onTapGesture {
|
||||
self.selectedInstruction = instructions.git
|
||||
}
|
||||
}
|
||||
.foregroundStyle(.link)
|
||||
|
||||
} header: {
|
||||
Text("What Should I Configure?")
|
||||
}
|
||||
@ -117,25 +149,22 @@ struct IntegrationsView: View {
|
||||
.formStyle(.grouped)
|
||||
}
|
||||
}
|
||||
}
|
||||
.onAppear {
|
||||
selectedInstruction = instructions.first?.instructions.first
|
||||
}
|
||||
.toolbar {
|
||||
ToolbarItem(placement: .primaryAction) {
|
||||
Button("Done") {
|
||||
dismiss()
|
||||
}
|
||||
.styled
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private struct Instructions {
|
||||
|
||||
private let socketPath = (NSHomeDirectory().replacingOccurrences(of: Bundle.hostBundleID, with: Bundle.agentBundleID) as NSString).appendingPathComponent("socket.ssh") as String
|
||||
|
||||
|
||||
var defaultShell: ConfigurationFileInstructions {
|
||||
zsh
|
||||
}
|
||||
|
||||
extension IntegrationsView {
|
||||
var gettingStarted: ConfigurationFileInstructions = ConfigurationFileInstructions("Getting Started", id: .gettingStarted)
|
||||
|
||||
fileprivate var ssh: ConfigurationFileInstructions {
|
||||
var ssh: ConfigurationFileInstructions {
|
||||
ConfigurationFileInstructions(
|
||||
tool: "SSH",
|
||||
configPath: "~/.ssh/config",
|
||||
@ -145,7 +174,7 @@ extension IntegrationsView {
|
||||
)
|
||||
}
|
||||
|
||||
fileprivate var git: ConfigurationFileInstructions {
|
||||
var git: ConfigurationFileInstructions {
|
||||
ConfigurationFileInstructions(
|
||||
tool: "Git Signing",
|
||||
steps: [
|
||||
@ -176,7 +205,7 @@ extension IntegrationsView {
|
||||
)
|
||||
}
|
||||
|
||||
fileprivate var zsh: ConfigurationFileInstructions {
|
||||
var zsh: ConfigurationFileInstructions {
|
||||
ConfigurationFileInstructions(
|
||||
tool: "zsh",
|
||||
configPath: "~/.zshrc",
|
||||
@ -184,10 +213,10 @@ extension IntegrationsView {
|
||||
)
|
||||
}
|
||||
|
||||
fileprivate var instructions: [ConfigurationGroup] {
|
||||
var instructions: [ConfigurationGroup] {
|
||||
[
|
||||
ConfigurationGroup(name:"Integrations", instructions: [
|
||||
ConfigurationFileInstructions("Getting Started", id: .gettingStarted),
|
||||
gettingStarted
|
||||
]),
|
||||
ConfigurationGroup(
|
||||
name: "System",
|
||||
|
Loading…
Reference in New Issue
Block a user