diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6e6a91c..866fd38 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -31,9 +31,9 @@ jobs: runs-on: ubuntu-latest container: swift:noble steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 with: { path: console-kit } - - uses: actions/checkout@v6 - with: { repository: 'vapor/vapor', path: vapor } + - uses: actions/checkout@v7 + with: { repository: 'vapor/vapor', ref: 'vapor4', path: vapor } - run: swift package --package-path vapor edit console-kit --path console-kit - run: swift test --package-path vapor diff --git a/Sources/ConsoleKitTerminal/Terminal/Console.swift b/Sources/ConsoleKitTerminal/Terminal/Console.swift index f961244..0d45cfc 100644 --- a/Sources/ConsoleKitTerminal/Terminal/Console.swift +++ b/Sources/ConsoleKitTerminal/Terminal/Console.swift @@ -97,9 +97,10 @@ public protocol Console: AnyObject, Sendable { extension Console { public var supportsANSICommands: Bool { - #if Xcode - // Xcode output does not support ANSI commands - return false + #if canImport(Darwin) + // We cannot check `#if Xcode` anymore due to https://github.com/swiftlang/swift-package-manager/issues/10675 + // This is a pretty awful hack, but at least it works. + return (getenv("TERM").map { strncmp($0, "dumb", 4) } ?? 1) != 0 #elseif os(Windows) return _isatty(_fileno(stdout)) > 0 #else diff --git a/Tests/ConsoleKitTests/ReadPassphraseTests.swift b/Tests/ConsoleKitTests/ReadPassphraseTests.swift index eab5909..92bc68b 100644 --- a/Tests/ConsoleKitTests/ReadPassphraseTests.swift +++ b/Tests/ConsoleKitTests/ReadPassphraseTests.swift @@ -1,5 +1,5 @@ #if (os(Linux) || os(Android)) || (os(macOS) && DEBUG) -@testable import ConsoleKit +@testable import ConsoleKitTerminal import Testing #if canImport(Darwin)