https://github.com/drewag/command-line-parser
Utility to make command line parsing easier
https://github.com/drewag/command-line-parser
Last synced: 2 months ago
JSON representation
Utility to make command line parsing easier
- Host: GitHub
- URL: https://github.com/drewag/command-line-parser
- Owner: drewag
- Created: 2016-12-08T04:43:08.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-05-26T00:56:01.000Z (almost 6 years ago)
- Last Synced: 2025-01-28T17:14:28.223Z (4 months ago)
- Language: Swift
- Size: 11.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
Command Line Parser
====================Usage
-----### Simple
Arguments are strongly typed. After specifying all of the arguments call parse on the parser. If there is a usage problem, an
error will be thrown that describes the correct usage. If an error is not thrown, you can access the values from the arguments
with the `parsedValue` property.import Foundation
import CommandLineParserlet parser = Parser(arguments: CommandLine.arguments)
let arg1 = parser.string(named: "some_string")
let arg2 = parser.int(named: "some_int")do {
try parser.parse()let someString = arg1.parsedValue
let someInt = arg2.parsedValue// Use someString and someInt
}
catch let error {
print(usage) // "Usage: ./binary "
}### Optional Arguments
You can specify optional arguments at the end. The `parsedValue` of these arguments are optionals.
import Foundation
import CommandLineParserlet parser = Parser(arguments: CommandLine.arguments)
let arg1 = parser.string(named: "some_string")
let arg2 = parser.optionalString(named: "optional_string")do {
try parser.parse()let someString = arg1.parsedValue
let optionalString = arg2.parsedValue// Use someString and optionalString
}
catch let error {
print(usage) // "Usage: ./binary [optional_string]"
}### Sub commands
You can also specify subcommands. If the subcommand is matched it will run the provided handler
with a parser just for that command. If no command is matched, it will print out a usage describing
the possible commands.import Foundation
import CommandLineParserlet parser = Parser(arguments: CommandLine.arguments)
parser.command(named: "with_int") { parser in
let arg1 = parser.string(named: "some_string")
let arg2 = parser.int(named: "some_int")try parser.parse()
let someString = arg1.parsedValue
let someInt = arg2.parsedValue// Use someString and someInt
}parser.command(named: "with_optional_string") { parser in
let arg1 = parser.string(named: "some_string")
let arg2 = parser.optionalString(named: "optional_string")try parser.parse()
let someString = arg1.parsedValue
let optionalString = arg2.parsedValue// Use someString and optionalString
}do {
try parser.parse()
}
catch let error {
print(usage) // "Usage: ./binary with_int|with_optional_string"
print(usage) // "Usage: ./binary with_int "
print(usage) // "Usage: ./binary with_optional_string [optional_string]"
}Integration
------------Currently only [Swift Package Manager](https://swift.org/package-manager/) is supported:
import PackageDescription
let package = Package(
name: "hello",
dependencies: [
.Package(url: "https://github.com/drewag/command-line-parser.git", majorVersion: 1),
]
)Future Hopes/Plans
------------------- Add support for switches
License
-------CommandLineParser is released under the MIT license. See [LICENSE](https://raw.githubusercontent.com/drewag/text-transformers/master/License.txt) for details.