Skip to content

Instantly share code, notes, and snippets.

@kishikawakatsumi
Created April 5, 2018 15:57
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kishikawakatsumi/a75f2fb185fe509b9ea84f8d3b22ce70 to your computer and use it in GitHub Desktop.
Save kishikawakatsumi/a75f2fb185fe509b9ea84f8d3b22ce70 to your computer and use it in GitHub Desktop.
SwiftPM ArgumentParser usage
let parser = ArgumentParser(commandName: "swiftfmt", usage: "swiftfmt filename [options]", overview: "Format Swift source code")
let filenameArgument = parser.add(positional: "filename", kind: String.self)
let configrationOption = parser.add(option: "--configuration", kind: String.self)
let versionOption = parser.add(option: "--version", kind: Bool.self)
let verboseOption = parser.add(option: "--verbose", kind: Bool.self, usage: "Show more debugging information")
let result = try parser.parse(Array(CommandLine.arguments.dropFirst()))
if let version = result.get(versionOption) {
print("Swiftfmt 0.1.0")
return
}
guard let filename = result.get(filenameArgument) else {
return print("No input files.")
}
if let configration = result.get(configrationOption) {
option.configration = configration
}
if let verbose = result.get(verboseOption) {
option.verbose = verbose
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment