forked from swiftlang/swift-syntax
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSwiftSyntaxDevUtils.swift
More file actions
49 lines (44 loc) · 1.54 KB
/
SwiftSyntaxDevUtils.swift
File metadata and controls
49 lines (44 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2023 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
import ArgumentParser
@main
struct SwiftSyntaxDevUtils: ParsableCommand {
static let configuration = CommandConfiguration(
abstract: """
Build and test script for SwiftSyntax.
The build script can also drive the test suite included in the SwiftSyntax
repo. This requires a custom build of the compiler project since it accesses
test utilities that are not shipped as part of the toolchains. See the Testing
section for arguments that need to be specified for this.
""",
subcommands: [
Build.self,
GenerateSourceCode.self,
LocalPrPrecheck.self,
Test.self,
VerifySourceCode.self,
]
)
public static func main() {
SigIntListener.registerSigIntSubprocessTerminationHandler()
do {
var command = try parseAsRoot(nil)
try command.run()
} catch {
if !SigIntListener.hasReceivedSigInt {
// No point printing an error message if the user requested the termination
// of the script.
exit(withError: error)
}
}
}
}