Add config schema
This commit is contained in:
parent
e4de0998d3
commit
836a56fdbe
3 changed files with 46 additions and 3 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -39,3 +39,5 @@ build/
|
|||
|
||||
### Other Stuff ###
|
||||
**/resources/config*.json
|
||||
!**/resources/config.example.json
|
||||
!**/resources/config.schema.json
|
|
@ -19,12 +19,11 @@ public class Config {
|
|||
* @throws IOException if the config JSON could not be read
|
||||
*/
|
||||
public static Config readConfig() throws IOException {
|
||||
System.out.println(Path.of("config.json"));
|
||||
try (InputStream in=Thread.currentThread().getContextClassLoader().getResourceAsStream("config.json")) {
|
||||
assert in != null;
|
||||
Reader reader = new InputStreamReader(in, StandardCharsets.UTF_8);
|
||||
return new Gson().fromJson(reader, Config.class);
|
||||
} catch (IOException e) {
|
||||
} catch (IOException | NullPointerException e) {
|
||||
throw new IOException("""
|
||||
config.json was not found in the root folder (of the project), did you forget to put it ?
|
||||
Example structure:
|
||||
|
|
42
src/main/resources/config.schema.json
Normal file
42
src/main/resources/config.schema.json
Normal file
|
@ -0,0 +1,42 @@
|
|||
|
||||
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"token": {
|
||||
"type": "string"
|
||||
},
|
||||
"prefix": {
|
||||
"type": "string"
|
||||
},
|
||||
"mariadb": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"host": {
|
||||
"type": "string"
|
||||
},
|
||||
"user": {
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"type": "string"
|
||||
},
|
||||
"database": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"host",
|
||||
"user",
|
||||
"password",
|
||||
"database"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"token",
|
||||
"prefix",
|
||||
"mariadb"
|
||||
]
|
||||
}
|
Loading…
Reference in a new issue