parse int args
This commit is contained in:
parent
c1ebcfcd61
commit
3abdc8b6c1
1 changed files with 15 additions and 3 deletions
|
|
@ -1,3 +1,5 @@
|
|||
import "dart:convert";
|
||||
|
||||
import "package:args/args.dart";
|
||||
import "package:nexusbot/models/settings.dart";
|
||||
import "package:riverpod/riverpod.dart";
|
||||
|
|
@ -6,9 +8,19 @@ class SettingsController extends Notifier<Settings?> {
|
|||
@override
|
||||
Settings? build() => null;
|
||||
|
||||
void set(ArgResults args) => state = Settings.fromJson(<String, dynamic>{
|
||||
for (final opt in args.options) opt: args.option(opt),
|
||||
});
|
||||
void set(ArgResults args) {
|
||||
dynamic tryJson(String value) {
|
||||
try {
|
||||
return json.decode(value);
|
||||
} catch (_) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
state = Settings.fromJson(<String, dynamic>{
|
||||
for (final opt in args.options) opt: tryJson(args.option(opt) ?? "null"),
|
||||
});
|
||||
}
|
||||
|
||||
static final provider = NotifierProvider<SettingsController, Settings?>(
|
||||
SettingsController.new,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue