Skip to content

Commit 6406ec2

Browse files
Merge pull request #307 from swiftwasm/yt/plugin-verbose
PackageToJS: Generalize `--verbose` flag to all commands
2 parents 29ba8ae + 56ec458 commit 6406ec2

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

Plugins/PackageToJS/Sources/PackageToJS.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ struct PackageToJS {
88
var packageName: String?
99
/// Whether to explain the build plan (default: false)
1010
var explain: Bool = false
11+
/// Whether to print verbose output
12+
var verbose: Bool = false
1113
/// Whether to use CDN for dependency packages (default: false)
1214
var useCDN: Bool = false
1315
/// Whether to enable code coverage collection (default: false)
@@ -49,8 +51,6 @@ struct PackageToJS {
4951
var inspect: Bool
5052
/// The extra arguments to pass to node
5153
var extraNodeArguments: [String]
52-
/// Whether to print verbose output
53-
var verbose: Bool
5454
/// The options for packaging
5555
var packageOptions: PackageOptions
5656
}
@@ -99,7 +99,7 @@ struct PackageToJS {
9999
try PackageToJS.runSingleTestingLibrary(
100100
testRunner: testRunner, currentDirectoryURL: currentDirectoryURL,
101101
extraArguments: extraArguments,
102-
testParser: testOptions.verbose ? nil : FancyTestsParser(write: { print($0, terminator: "") }),
102+
testParser: testOptions.packageOptions.verbose ? nil : FancyTestsParser(write: { print($0, terminator: "") }),
103103
testOptions: testOptions
104104
)
105105
}

Plugins/PackageToJS/Sources/PackageToJSPlugin.swift

+10-9
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ struct PackageToJSPlugin: CommandPlugin {
156156
let productName = try buildOptions.product ?? deriveDefaultProduct(package: context.package)
157157
let build = try buildWasm(
158158
productName: productName, context: context,
159-
enableCodeCoverage: buildOptions.packageOptions.enableCodeCoverage
159+
options: buildOptions.packageOptions
160160
)
161161
guard build.succeeded else {
162162
reportBuildFailure(build, arguments)
@@ -212,7 +212,7 @@ struct PackageToJSPlugin: CommandPlugin {
212212
let productName = "\(context.package.displayName)PackageTests"
213213
let build = try buildWasm(
214214
productName: productName, context: context,
215-
enableCodeCoverage: testOptions.packageOptions.enableCodeCoverage
215+
options: testOptions.packageOptions
216216
)
217217
guard build.succeeded else {
218218
reportBuildFailure(build, arguments)
@@ -284,12 +284,12 @@ struct PackageToJSPlugin: CommandPlugin {
284284
}
285285
}
286286

287-
private func buildWasm(productName: String, context: PluginContext, enableCodeCoverage: Bool) throws
287+
private func buildWasm(productName: String, context: PluginContext, options: PackageToJS.PackageOptions) throws
288288
-> PackageManager.BuildResult
289289
{
290290
var parameters = PackageManager.BuildParameters(
291291
configuration: .inherit,
292-
logging: .concise
292+
logging: options.verbose ? .verbose : .concise
293293
)
294294
parameters.echoLogs = true
295295
parameters.otherSwiftcFlags = ["-color-diagnostics"]
@@ -308,7 +308,7 @@ struct PackageToJSPlugin: CommandPlugin {
308308
]
309309

310310
// Enable code coverage options if requested
311-
if enableCodeCoverage {
311+
if options.enableCodeCoverage {
312312
parameters.otherSwiftcFlags += ["-profile-coverage-mapping", "-profile-generate"]
313313
parameters.otherCFlags += ["-fprofile-instr-generate", "-fcoverage-mapping"]
314314
}
@@ -356,9 +356,10 @@ extension PackageToJS.PackageOptions {
356356
let packageName = extractor.extractOption(named: "package-name").last
357357
let explain = extractor.extractFlag(named: "explain")
358358
let useCDN = extractor.extractFlag(named: "use-cdn")
359+
let verbose = extractor.extractFlag(named: "verbose")
359360
let enableCodeCoverage = extractor.extractFlag(named: "enable-code-coverage")
360361
return PackageToJS.PackageOptions(
361-
outputPath: outputPath, packageName: packageName, explain: explain != 0, useCDN: useCDN != 0, enableCodeCoverage: enableCodeCoverage != 0
362+
outputPath: outputPath, packageName: packageName, explain: explain != 0, verbose: verbose != 0, useCDN: useCDN != 0, enableCodeCoverage: enableCodeCoverage != 0
362363
)
363364
}
364365
}
@@ -390,6 +391,7 @@ extension PackageToJS.BuildOptions {
390391
--output <path> Path to the output directory (default: .build/plugins/PackageToJS/outputs/Package)
391392
--package-name <name> Name of the package (default: lowercased Package.swift name)
392393
--explain Whether to explain the build plan
394+
--verbose Whether to print verbose output
393395
--no-optimize Whether to disable wasm-opt optimization
394396
--use-cdn Whether to use CDN for dependency packages
395397
--enable-code-coverage Whether to enable code coverage collection
@@ -419,14 +421,12 @@ extension PackageToJS.TestOptions {
419421
let prelude = extractor.extractOption(named: "prelude").last
420422
let environment = extractor.extractOption(named: "environment").last
421423
let inspect = extractor.extractFlag(named: "inspect")
422-
let verbose = extractor.extractFlag(named: "verbose")
423424
let extraNodeArguments = extractor.extractSingleDashOption(named: "Xnode")
424425
let packageOptions = PackageToJS.PackageOptions.parse(from: &extractor)
425426
var options = PackageToJS.TestOptions(
426427
buildOnly: buildOnly != 0, listTests: listTests != 0,
427428
filter: filter, prelude: prelude, environment: environment, inspect: inspect != 0,
428429
extraNodeArguments: extraNodeArguments,
429-
verbose: verbose != 0,
430430
packageOptions: packageOptions
431431
)
432432

@@ -448,9 +448,10 @@ extension PackageToJS.TestOptions {
448448
--prelude <path> Path to the prelude script
449449
--environment <name> The environment to use for the tests (values: node, browser; default: node)
450450
--inspect Whether to run tests in the browser with inspector enabled
451+
--explain Whether to explain the build plan
452+
--verbose Whether to print verbose output
451453
--use-cdn Whether to use CDN for dependency packages
452454
--enable-code-coverage Whether to enable code coverage collection
453-
--verbose Whether to print verbose output
454455
-Xnode <args> Extra arguments to pass to Node.js
455456
456457
EXAMPLES:

0 commit comments

Comments
 (0)