Skip to content

Commit

Permalink
Merge pull request #3 from silentsoft/dev
Browse files Browse the repository at this point in the history
Bump version from 1.1.0 to 2.0.0
  • Loading branch information
silentsoft authored Jan 29, 2023
2 parents 902a15b + ac90fa0 commit 0e813f8
Show file tree
Hide file tree
Showing 12 changed files with 875 additions and 570 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
/target/
.idea/
.settings/
.classpath
.project
.DS_Store
.DS_Store
*.iml
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
## 2.0.0 (29 Jan 2023)

### Breaking Changes
```java
public static void main(String[] args) throws Exception {
Arguments arguments = parseArguments(args);
}

private static Arguments parseArguments(String[] args) throws InvalidArgumentsException {
return Arguments.parser(args)
.help(arguments -> {
System.out.println("Some Help Message");
System.exit(0);
})
.validate(arguments -> {
// some validation
return true;
})
.parse();
}
```
### Deprecated APIs
- `ArgumentsParser.parse(args)`
- `ArgumentsParser.parse(args, validator)`
### New APIs for `Arguments` class
- `String getValue(String key)`
- `String getValue(String key, String defaultValue)`
- `List<String> getValues(String key)`
- `List<String> getValues(String key, List<String> defaultValues)`
- `boolean requiresHelp()`

## 1.1.0 (10 Jul 2020)
- Fix identity issue and missing key problem

Expand Down
59 changes: 42 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Arguments Parser

![release](https://img.shields.io/badge/release-v1.1.0-blue.svg)
[![Build Status](https://travis-ci.com/silentsoft/arguments-parser.svg?branch=master)](https://travis-ci.com/silentsoft/arguments-parser)
[![Maven Central](https://img.shields.io/maven-central/v/org.silentsoft/arguments-parser)](https://search.maven.org/artifact/org.silentsoft/arguments-parser)
[![Build Status](https://app.travis-ci.com/silentsoft/arguments-parser.svg?branch=master)](https://app.travis-ci.com/silentsoft/arguments-parser)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=silentsoft_arguments-parser&metric=alert_status)](https://sonarcloud.io/dashboard?id=silentsoft_arguments-parser)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=silentsoft_arguments-parser&metric=coverage)](https://sonarcloud.io/dashboard?id=silentsoft_arguments-parser)
[![HitCount](http://hits.dwyl.com/silentsoft/arguments-parser.svg)](http://hits.dwyl.com/silentsoft/arguments-parser)
[![Hits](https://hits.sh/github.com/silentsoft/arguments-parser.svg)](https://hits.sh/github.com/silentsoft/arguments-parser/)

> Do not parsing main(args) anymore !
Expand All @@ -24,36 +24,61 @@

## Maven Central
```xml
<dependencies>
<dependency>
<groupId>org.silentsoft</groupId>
<artifactId>arguments-parser</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
<dependency>
<groupId>org.silentsoft</groupId>
<artifactId>arguments-parser</artifactId>
<version>2.0.0</version>
</dependency>
```

## Usage
```java
public static void main(String[] args) throws Exception {
Arguments arguments = ArgumentsParser.parse(args);
Arguments arguments = Arguments.parser(args).parse();
}
```

## Advanced Topics

### Arguments Helper Usage
If the `args` contains one of the following help commands then `ArgumentsHelper.help(Arguments)` will be invoked.
* -help
* --help
* -?
* --?
```java
public static void main(String[] args) throws Exception {
Arguments arguments = parseArguments(args);
}

private static Arguments parseArguments(String[] args) throws InvalidArgumentsException {
return Arguments.parser(args).help(arguments -> {
StringBuilder builder = new StringBuilder();
builder.append("Usage: java -jar application.jar [arguments]\n");
builder.append("\n");
builder.append("Common arguments:\n");
// ...
System.out.println(builder.toString());

System.exit(0);
}).parse();
}
```

### Arguments Validator Usage
```java
public static void main(String[] args) throws Exception {
ArgumentsValidator validator = (arguments) -> {
Arguments arguments = parseArguments(args);
}

private static Arguments parseArguments(String[] args) throws InvalidArgumentsException {
return Arguments.parser(args).validate(arguments -> {
if (arguments.containsKey("-a") && arguments.containsKey("-b")) {
throw new InvalidArgumentsException("'-a' and '-b' cannot be exists together.");
}

return true;
};

Arguments arguments = ArgumentsParser.parse(args, validator);
}).parse();
}
```

Expand All @@ -72,7 +97,7 @@ public static void main(String[] args) throws Exception {
### Usage
```java
public static void main(String[] args) throws Exception {
Arguments arguments = ArgumentsParser.parse(args).with(ParsingOptions...);
Arguments arguments = Arguments.parser(args, ParsingOptions...).parse();
}
```

Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>org.silentsoft</groupId>
<artifactId>arguments-parser</artifactId>
<version>1.1.0</version>
<version>2.0.0</version>

<name>Arguments Parser</name>
<description>Arguments Parser is a simple java library to parse command line arguments.</description>
Expand Down Expand Up @@ -155,7 +155,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
Loading

0 comments on commit 0e813f8

Please sign in to comment.