Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import Darwin
import Foundation
import ToolCommon

@main
Expand All @@ -12,16 +13,32 @@ struct SwiftDebugSettings {

do {
// First argument is executable name
var rawArguments = CommandLine.arguments.dropFirst()
let rawArguments = CommandLine.arguments.dropFirst()

// Check for a params file
var arguments: ArraySlice<String>
if let arg = rawArguments.first, rawArguments.count == 1,
arg.starts(with: "@")
{
arguments = try await parseParamsFile(String(arg.dropFirst()))
} else {
arguments = ArraySlice(rawArguments)
}

if try rawArguments.consumeArg("colorize", as: Bool.self) {
if try arguments.consumeArg("colorize", as: Bool.self) {
logger.enableColors()
}

try await Generator().generate(rawArguments: rawArguments)
try await Generator().generate(rawArguments: arguments)
} catch {
logger.logError(error.localizedDescription)
Darwin.exit(1)
}
}

private static func parseParamsFile(
_ path: String
) async throws -> ArraySlice<String> {
return try await ArraySlice(URL(fileURLWithPath: path).allLines.collect())
}
}
2 changes: 2 additions & 0 deletions xcodeproj/internal/pbxproj_partials.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -1049,6 +1049,8 @@ def _write_swift_debug_settings(
)

args = actions.args()
args.use_param_file("@%s")
args.set_param_file_format(format = "multiline")

# colorize
args.add(TRUE_ARG if colorize else FALSE_ARG)
Expand Down