Skip to content

Commit a52d4d8

Browse files
miggs597Miguel Perez
andauthored
Fix swift package init --help printout (#3407)
* Fix --help printout * What a fixed --help would look like All of our subcommands need fixing. This is a demo of what fixing all the commands would look like Also includes some fillings for `Options()` that didn't have any help * Testable import, and throw InternalError * Updated all remaining commands * Bump Swift-Argument-Parser Includes the new constructor that we need * Reverted import of Commands * Reverted indexStore, to be implemented in separate pr Co-authored-by: Miguel Perez <[email protected]>
1 parent 708c5d6 commit a52d4d8

File tree

6 files changed

+43
-39
lines changed

6 files changed

+43
-39
lines changed

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ if ProcessInfo.processInfo.environment["SWIFTCI_USE_LOCAL_DEPS"] == nil {
358358
// The 'swift-argument-parser' version declared here must match that
359359
// used by 'swift-driver' and 'sourcekit-lsp'. Please coordinate
360360
// dependency version changes here with those projects.
361-
.package(url: "https://github.com/apple/swift-argument-parser.git", .upToNextMinor(from: "0.3.1")),
361+
.package(url: "https://github.com/apple/swift-argument-parser.git", .upToNextMinor(from: "0.4.3")),
362362
.package(url: "https://github.com/apple/swift-driver.git", .branch(relatedDependenciesBranch)),
363363
.package(url: "https://github.com/apple/swift-crypto.git", .upToNextMinor(from: "1.1.4")),
364364
]

Sources/Commands/Options.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,13 +248,13 @@ public struct SwiftToolOptions: ParsableArguments {
248248

249249
@Flag(name: .customLong("index-store"), inversion: .prefixedEnableDisable, help: "Enable or disable indexing-while-building feature")
250250
var indexStoreEnable: Bool?
251-
251+
252252
/// The mode to use for indexing-while-building feature.
253253
var indexStore: BuildParameters.IndexStoreMode {
254254
guard let enable = indexStoreEnable else { return .auto }
255255
return enable ? .on : .off
256256
}
257-
257+
258258
/// Whether to enable generation of `.swiftinterface`s alongside `.swiftmodule`s.
259259
@Flag(name: .customLong("enable-parseable-module-interfaces"))
260260
var shouldEnableParseableModuleInterfaces: Bool = false

Sources/Commands/SwiftBuildTool.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public struct SwiftBuildTool: SwiftCommand {
8383
version: SwiftVersion.currentVersion.completeDisplayString,
8484
helpNames: [.short, .long, .customLong("help", withSingleDash: true)])
8585

86-
@OptionGroup()
86+
@OptionGroup(_hiddenFromHelp: true)
8787
var swiftOptions: SwiftToolOptions
8888

8989
@OptionGroup()

Sources/Commands/SwiftPackageTool.swift

Lines changed: 37 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ extension SwiftPackageTool {
7878
static let configuration = CommandConfiguration(
7979
abstract: "Delete build artifacts")
8080

81-
@OptionGroup()
81+
@OptionGroup(_hiddenFromHelp: true)
8282
var swiftOptions: SwiftToolOptions
8383

8484
func run(_ swiftTool: SwiftTool) throws {
@@ -90,7 +90,7 @@ extension SwiftPackageTool {
9090
static let configuration = CommandConfiguration(
9191
abstract: "Purge the global repository cache.")
9292

93-
@OptionGroup()
93+
@OptionGroup(_hiddenFromHelp: true)
9494
var swiftOptions: SwiftToolOptions
9595

9696
func run(_ swiftTool: SwiftTool) throws {
@@ -102,7 +102,7 @@ extension SwiftPackageTool {
102102
static let configuration = CommandConfiguration(
103103
abstract: "Reset the complete cache/build directory")
104104

105-
@OptionGroup()
105+
@OptionGroup(_hiddenFromHelp: true)
106106
var swiftOptions: SwiftToolOptions
107107

108108
func run(_ swiftTool: SwiftTool) throws {
@@ -114,7 +114,7 @@ extension SwiftPackageTool {
114114
static let configuration = CommandConfiguration(
115115
abstract: "Update package dependencies")
116116

117-
@OptionGroup()
117+
@OptionGroup(_hiddenFromHelp: true)
118118
var swiftOptions: SwiftToolOptions
119119

120120
@Flag(name: [.long, .customShort("n")],
@@ -160,10 +160,10 @@ extension SwiftPackageTool {
160160
static let configuration = CommandConfiguration(
161161
abstract: "Describe the current package")
162162

163-
@OptionGroup()
163+
@OptionGroup(_hiddenFromHelp: true)
164164
var swiftOptions: SwiftToolOptions
165165

166-
@Option()
166+
@Option(help: "json | text")
167167
var type: DescribeMode = .text
168168

169169
func run(_ swiftTool: SwiftTool) throws {
@@ -191,21 +191,22 @@ extension SwiftPackageTool {
191191
}
192192

193193
struct Init: SwiftCommand {
194-
static let configuration = CommandConfiguration(
194+
public static let configuration = CommandConfiguration(
195195
abstract: "Initialize a new package")
196196

197-
@OptionGroup()
197+
@OptionGroup(_hiddenFromHelp: true)
198198
var swiftOptions: SwiftToolOptions
199199

200-
@Option(name: .customLong("type"))
200+
@Option(name: .customLong("type"), help: "Package type: empty | library | executable | system-module | manifest")
201201
var initMode: InitPackage.PackageType = .library
202202

203203
@Option(name: .customLong("name"), help: "Provide custom package name")
204204
var packageName: String?
205-
205+
206206
func run(_ swiftTool: SwiftTool) throws {
207-
// FIXME: Error handling.
208-
let cwd = localFileSystem.currentWorkingDirectory!
207+
guard let cwd = localFileSystem.currentWorkingDirectory else {
208+
throw InternalError("Could not find the current working directory")
209+
}
209210

210211
let packageName = self.packageName ?? cwd.basename
211212
let initPackage = try InitPackage(
@@ -221,7 +222,7 @@ extension SwiftPackageTool {
221222
static let configuration = CommandConfiguration(
222223
commandName: "_format")
223224

224-
@OptionGroup()
225+
@OptionGroup(_hiddenFromHelp: true)
225226
var swiftOptions: SwiftToolOptions
226227

227228
@Argument(parsing: .unconditionalRemaining,
@@ -291,7 +292,7 @@ extension SwiftPackageTool {
291292
static let configuration = CommandConfiguration(
292293
commandName: "experimental-api-diff")
293294

294-
@OptionGroup()
295+
@OptionGroup(_hiddenFromHelp: true)
295296
var swiftOptions: SwiftToolOptions
296297

297298
@Argument(help: "The baseline treeish to compare to (e.g. a commit hash, branch name, tag, etc.)")
@@ -330,7 +331,10 @@ extension SwiftPackageTool {
330331
}
331332

332333
struct DumpSymbolGraph: SwiftCommand {
333-
@OptionGroup()
334+
static let configuration = CommandConfiguration(
335+
abstract: "Dump Symbol Graph")
336+
337+
@OptionGroup(_hiddenFromHelp: true)
334338
var swiftOptions: SwiftToolOptions
335339

336340
func run(_ swiftTool: SwiftTool) throws {
@@ -353,7 +357,7 @@ extension SwiftPackageTool {
353357
static let configuration = CommandConfiguration(
354358
abstract: "Print parsed Package.swift as JSON")
355359

356-
@OptionGroup()
360+
@OptionGroup(_hiddenFromHelp: true)
357361
var swiftOptions: SwiftToolOptions
358362

359363
func run(_ swiftTool: SwiftTool) throws {
@@ -377,7 +381,7 @@ extension SwiftPackageTool {
377381
}
378382

379383
struct DumpPIF: SwiftCommand {
380-
@OptionGroup()
384+
@OptionGroup(_hiddenFromHelp: true)
381385
var swiftOptions: SwiftToolOptions
382386

383387
@Flag(help: "Preserve the internal structure of PIF")
@@ -396,7 +400,7 @@ extension SwiftPackageTool {
396400
static let configuration = CommandConfiguration(
397401
abstract: "Put a package in editable mode")
398402

399-
@OptionGroup()
403+
@OptionGroup(_hiddenFromHelp: true)
400404
var swiftOptions: SwiftToolOptions
401405

402406
@Option(help: "The revision to edit", transform: { Revision(identifier: $0) })
@@ -429,7 +433,7 @@ extension SwiftPackageTool {
429433
static let configuration = CommandConfiguration(
430434
abstract: "Remove a package from editable mode")
431435

432-
@OptionGroup()
436+
@OptionGroup(_hiddenFromHelp: true)
433437
var swiftOptions: SwiftToolOptions
434438

435439
@Flag(name: .customLong("force"),
@@ -456,10 +460,10 @@ extension SwiftPackageTool {
456460
static let configuration = CommandConfiguration(
457461
abstract: "Print the resolved dependency graph")
458462

459-
@OptionGroup()
463+
@OptionGroup(_hiddenFromHelp: true)
460464
var swiftOptions: SwiftToolOptions
461465

462-
@Option()
466+
@Option(help: "text | dot | json | flatlist")
463467
var format: ShowDependenciesMode = .text
464468

465469
func run(_ swiftTool: SwiftTool) throws {
@@ -473,10 +477,10 @@ extension SwiftPackageTool {
473477
commandName: "tools-version",
474478
abstract: "Manipulate tools version of the current package")
475479

476-
@OptionGroup()
480+
@OptionGroup(_hiddenFromHelp: true)
477481
var swiftOptions: SwiftToolOptions
478482

479-
@Option()
483+
@Option(help: "text | dot | json | flatlist")
480484
var format: ShowDependenciesMode = .text
481485

482486
@Flag(help: "Set tools version of package to the current tools version in use")
@@ -532,7 +536,7 @@ extension SwiftPackageTool {
532536
static let configuration = CommandConfiguration(
533537
abstract: "Compute the checksum for a binary artifact.")
534538

535-
@OptionGroup()
539+
@OptionGroup(_hiddenFromHelp: true)
536540
var swiftOptions: SwiftToolOptions
537541

538542
@Argument(help: "The absolute or relative path to the binary artifact")
@@ -560,7 +564,7 @@ extension SwiftPackageTool {
560564
abstract: "Create a source archive for the package"
561565
)
562566

563-
@OptionGroup()
567+
@OptionGroup(_hiddenFromHelp: true)
564568
var swiftOptions: SwiftToolOptions
565569

566570
@Option(
@@ -622,7 +626,7 @@ extension SwiftPackageTool {
622626
var skipExtraFiles: Bool = false
623627
}
624628

625-
@OptionGroup()
629+
@OptionGroup(_hiddenFromHelp: true)
626630
var swiftOptions: SwiftToolOptions
627631

628632
@OptionGroup()
@@ -698,7 +702,7 @@ extension SwiftPackageTool.Config {
698702
static let configuration = CommandConfiguration(
699703
abstract: "Set a mirror for a dependency")
700704

701-
@OptionGroup()
705+
@OptionGroup(_hiddenFromHelp: true)
702706
var swiftOptions: SwiftToolOptions
703707

704708
@Option(help: "The package dependency url")
@@ -732,7 +736,7 @@ extension SwiftPackageTool.Config {
732736
static let configuration = CommandConfiguration(
733737
abstract: "Remove an existing mirror")
734738

735-
@OptionGroup()
739+
@OptionGroup(_hiddenFromHelp: true)
736740
var swiftOptions: SwiftToolOptions
737741

738742
@Option(help: "The package dependency url")
@@ -766,7 +770,7 @@ extension SwiftPackageTool.Config {
766770
static let configuration = CommandConfiguration(
767771
abstract: "Print mirror configuration for the given package dependency")
768772

769-
@OptionGroup()
773+
@OptionGroup(_hiddenFromHelp: true)
770774
var swiftOptions: SwiftToolOptions
771775

772776
@Option(help: "The package dependency url")
@@ -818,7 +822,7 @@ extension SwiftPackageTool {
818822
static let configuration = CommandConfiguration(
819823
abstract: "Resolve package dependencies")
820824

821-
@OptionGroup()
825+
@OptionGroup(_hiddenFromHelp: true)
822826
var swiftOptions: SwiftToolOptions
823827

824828
@OptionGroup()
@@ -848,7 +852,7 @@ extension SwiftPackageTool {
848852
struct Fetch: SwiftCommand {
849853
static let configuration = CommandConfiguration(shouldDisplay: false)
850854

851-
@OptionGroup()
855+
@OptionGroup(_hiddenFromHelp: true)
852856
var swiftOptions: SwiftToolOptions
853857

854858
@OptionGroup()
@@ -892,10 +896,10 @@ extension SwiftPackageTool {
892896
)
893897
}
894898

895-
@OptionGroup()
899+
@OptionGroup(_hiddenFromHelp: true)
896900
var swiftOptions: SwiftToolOptions
897901

898-
@Argument()
902+
@Argument(help: "generate-bash-script | generate-zsh-script |\ngenerate-fish-script | list-dependencies | list-executables")
899903
var mode: Mode
900904

901905
func run(_ swiftTool: SwiftTool) throws {

Sources/Commands/SwiftRunTool.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public struct SwiftRunTool: SwiftCommand {
9090
version: SwiftVersion.currentVersion.completeDisplayString,
9191
helpNames: [.short, .long, .customLong("help", withSingleDash: true)])
9292

93-
@OptionGroup()
93+
@OptionGroup(_hiddenFromHelp: true)
9494
public var swiftOptions: SwiftToolOptions
9595

9696
@OptionGroup()

Sources/Commands/SwiftTestTool.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ public struct SwiftTestTool: SwiftCommand {
194194
version: SwiftVersion.currentVersion.completeDisplayString,
195195
helpNames: [.short, .long, .customLong("help", withSingleDash: true)])
196196

197-
@OptionGroup()
197+
@OptionGroup(_hiddenFromHelp: true)
198198
var swiftOptions: SwiftToolOptions
199199

200200
@OptionGroup()

0 commit comments

Comments
 (0)