Commit Graph

4 Commits

Author SHA1 Message Date
uwiger 08287da7b7 Validator extensions, zomp vsn 0.2.0 (#5)
Co-authored-by: Ulf Wiger <ulf@wiger.net>
Reviewed-on: #5
2026-05-14 17:00:02 +09:00
uwiger de5d2bfb7d Make config file parsers pluggable (#1)
In order to simplify deps, this PR makes config file formats pluggable. The extensions supported by default are "json" and "eterm".
The default json decoder is the one from OTP, but if one prefers another (e.g. `zj`), it's possible to choose that when installing the gmconfig env.

Example of adding a yaml decoder:
```erlang
instrument_gmconfig() ->
    gmconfig:set_gmconfig_env(gmconfig_env()).

-spec gmconfig_env() -> gmconfig:gmconfig().
gmconfig_env() ->
    #{ ...
     , config_formats => add_yamerl() }.

add_yamerl() ->
    Default = maps:get(config_formats, gmconfig:default_gmconfig_env()),
    case maps:is_key("yaml", Default) of
        true ->
            Default;
        false ->
            Default#{"yaml" => fun yamerl_decode/1}
    end.

yamerl_decode(Bin) ->
    yamerl:decode(Bin, [{str_node_as_binary, true},
                        {map_node_format, map}]).
```

Co-authored-by: Ulf Wiger <ulf@wiger.net>
Reviewed-on: #1
2025-04-02 16:35:38 +09:00
Ulf Wiger e003452629 Fix typo in .app.src 2025-03-09 12:59:50 +01:00
Ulf Wiger b40b7ddef4 Initial commit 2025-02-24 22:17:41 +01:00