From 155302708347b1d349afa51c52f9e2af51464a3b Mon Sep 17 00:00:00 2001 From: John Bute Date: Fri, 7 Feb 2025 12:08:17 -0500 Subject: [PATCH 1/2] Consistency in y/n prompts #141 fix, in order to avoid certain prompts to user only accepting 'y', or 'n', utilized the promptForConfirmation method to ensure consistency in user experience. --- Sources/Swiftly/Init.swift | 13 ++++++------- Sources/Swiftly/Install.swift | 4 +--- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/Sources/Swiftly/Init.swift b/Sources/Swiftly/Init.swift index 58053657..1bb50615 100644 --- a/Sources/Swiftly/Init.swift +++ b/Sources/Swiftly/Init.swift @@ -76,8 +76,7 @@ internal struct Init: SwiftlyCommand { These locations can be changed with SWIFTLY_HOME and SWIFTLY_BIN environment variables and run this again. \(installMsg) """) - - if SwiftlyCore.readLine(prompt: "Proceed with the installation? [Y/n] ") == "n" { + guard SwiftlyCore.promptForConfirmation(defaultBehavior: true) else { throw SwiftlyError(message: "Swiftly installation has been cancelled") } } @@ -93,9 +92,7 @@ internal struct Init: SwiftlyCommand { SwiftlyCore.print(" \(swiftlyBinDir.appendingPathComponent(executable).path)") } - let proceed = SwiftlyCore.readLine(prompt: "Proceed? [y/N]") ?? "n" - - guard proceed == "y" else { + guard SwiftlyCore.promptForConfirmation(defaultBehavior: false) else { throw SwiftlyError(message: "Swiftly installation has been cancelled") } } @@ -203,8 +200,10 @@ internal struct Init: SwiftlyCommand { try FileManager.default.createDirectory(at: confDir, withIntermediateDirectories: true) profileHome = confDir.appendingPathComponent("swiftly.fish", isDirectory: false) } else { - let confDir = userHome.appendingPathComponent(".config/fish/conf.d", isDirectory: true) - try FileManager.default.createDirectory(at: confDir, withIntermediateDirectories: true) + let confDir = userHome.appendingPathComponent( + ".config/fish/conf.d", isDirectory: true) + try FileManager.default.createDirectory( + at: confDir, withIntermediateDirectories: true) profileHome = confDir.appendingPathComponent("swiftly.fish", isDirectory: false) } } else { diff --git a/Sources/Swiftly/Install.swift b/Sources/Swiftly/Install.swift index 6f372907..1d3b1553 100644 --- a/Sources/Swiftly/Install.swift +++ b/Sources/Swiftly/Install.swift @@ -266,9 +266,7 @@ struct Install: SwiftlyCommand { SwiftlyCore.print(" \(swiftlyBinDir.appendingPathComponent(executable).path)") } - let proceed = SwiftlyCore.readLine(prompt: "Proceed? [y/N]") ?? "n" - - guard proceed == "y" else { + guard SwiftlyCore.promptForConfirmation(defaultBehavior: false) else { throw SwiftlyError(message: "Toolchain installation has been cancelled") } } From ce411e07704329afbde2dd04c0b3e57bd9979518 Mon Sep 17 00:00:00 2001 From: John Bute Date: Tue, 11 Feb 2025 11:09:00 -0500 Subject: [PATCH 2/2] fixed formatting issues --- Sources/Swiftly/Init.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Sources/Swiftly/Init.swift b/Sources/Swiftly/Init.swift index 1bb50615..f5c9f917 100644 --- a/Sources/Swiftly/Init.swift +++ b/Sources/Swiftly/Init.swift @@ -201,9 +201,11 @@ internal struct Init: SwiftlyCommand { profileHome = confDir.appendingPathComponent("swiftly.fish", isDirectory: false) } else { let confDir = userHome.appendingPathComponent( - ".config/fish/conf.d", isDirectory: true) + ".config/fish/conf.d", isDirectory: true + ) try FileManager.default.createDirectory( - at: confDir, withIntermediateDirectories: true) + at: confDir, withIntermediateDirectories: true + ) profileHome = confDir.appendingPathComponent("swiftly.fish", isDirectory: false) } } else {