Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mattroberts297/claper
A Command Line Argument Parser for Scala
https://github.com/mattroberts297/claper
argument-parser scala shapeless
Last synced: 3 months ago
JSON representation
A Command Line Argument Parser for Scala
- Host: GitHub
- URL: https://github.com/mattroberts297/claper
- Owner: mattroberts297
- License: mit
- Created: 2017-04-10T18:57:43.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2020-08-24T21:33:13.000Z (over 4 years ago)
- Last Synced: 2024-10-11T08:47:10.500Z (4 months ago)
- Topics: argument-parser, scala, shapeless
- Language: Scala
- Homepage:
- Size: 43 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CLAPer
[![Build status](https://travis-ci.org/mattroberts297/claper.svg?branch=master)](https://travis-ci.org/mattroberts297/claper)
[![Coverage status](https://coveralls.io/repos/github/mattroberts297/claper/badge.svg?branch=master)](https://coveralls.io/github/mattroberts297/claper?branch=master)
[![Maven central](https://img.shields.io/maven-central/v/io.mattroberts/claper_2.12.svg)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22io.mattroberts%22%20a%3A%22claper_2.12%22)A Command Line Argument Parser without the boiler plate.
## Getting Started
Add the library as a dependency in your project's `build.sbt` file:
```scala
scalaVersion := "2.12.1"libraryDependencies ++= Seq(
"io.mattroberts" %% "claper" % "0.3.0"
)
```Then use it to parse command line arguments:
```scala
import io.mattroberts.Claper
case class Args(alpha: String, beta: Int, charlie: Boolean)
val args = List("--alpha", "alpha", "--beta", "1", "--charlie")
val parsed = Claper[Args].parse(args)
println(parsed) // Right(Args("alpha", 1, true))
```## Usage
See [ClaperSpec](src/test/scala/io/mattroberts/ClaperSpec.scala) for full usage.
## Features
- Support for case classes (products)
- Support for default values
- Support for Linux style arguments## Future Features
In the future I might:
- Add coproduct support
- Add short Linux style arguments
- Add support for list arguments (delimited)
- Add support for enumerations
- Add support for ClaperApp (like App)