From e361a700517b26948927701ae046750139ad0ad6 Mon Sep 17 00:00:00 2001 From: Paul LeMarquand Date: Fri, 17 Jan 2025 11:25:05 -0500 Subject: [PATCH] Conform Swiftly's Error type to CustomStringConvertible `swift-argument-parser` will use an Error's description when printing the error. This patch conforms Swiftly's Error type to CustomStringConvertible, which will show the actual message in stdout instead of the object's description of `Error(message: "...")` Issue: #201 --- Sources/SwiftlyCore/Error.swift | 5 +++-- Tools/build-swiftly-release/BuildSwiftlyRelease.swift | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Sources/SwiftlyCore/Error.swift b/Sources/SwiftlyCore/Error.swift index 62452daf..f41296c4 100644 --- a/Sources/SwiftlyCore/Error.swift +++ b/Sources/SwiftlyCore/Error.swift @@ -1,11 +1,12 @@ import Foundation -public struct Error: LocalizedError { +public struct Error: LocalizedError, CustomStringConvertible { public let message: String public init(message: String) { self.message = message } - public var errorDescription: String? { self.message } + public var errorDescription: String { self.message } + public var description: String { self.message } } diff --git a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift index 320918c5..ec5e203c 100644 --- a/Tools/build-swiftly-release/BuildSwiftlyRelease.swift +++ b/Tools/build-swiftly-release/BuildSwiftlyRelease.swift @@ -12,14 +12,15 @@ public struct SwiftRelease: Codable { } // These functions are cloned and adapted from SwiftlyCore until we can do better bootstrapping -public struct Error: LocalizedError { +public struct Error: LocalizedError, CustomStringConvertible { public let message: String public init(message: String) { self.message = message } - public var errorDescription: String? { self.message } + public var errorDescription: String { self.message } + public var description: String { self.message } } public func runProgramEnv(_ args: String..., quiet: Bool = false, env: [String: String]?) throws {