Skip to content

carlosedp/rebar3_diameter_compiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rebar3_diameter_compiler

Compile diameter .dia files in rebar3 projects.

Browse the plugin documentation.

Erlang CI Hex pm

Build

./rebar3 compile

Use

Add the plugin to your rebar config from Hex.pm (published version):

{plugins, [
    rebar3_diameter_compiler
]}.

{provider_hooks, [
    {pre, [
        {compile, {diameter, compile}},
        {clean, {diameter, clean}}
    ]}
]}.

Or fetch the plugin using Github (to use the latest pushes):

{plugins, [
    { rebar3_diameter_compiler, {git, "https://github.com/carlosedp/rebar3_diameter_compiler.git", {branch, "main"}}}
]}.

{provider_hooks, [
    {pre, [
        {compile, {diameter, compile}},
        {clean, {diameter, clean}}
    ]}
]}.

The plugin will run on compile and clean commands (like rebar3 compile and rebar3 clean). You can also call your plugin directly in an existing application:

$ rebar3 diameter compile
===> Fetching rebar3_diameter_compiler
===> Compiling rebar3_diameter_compiler
===> Compiling diameter...

$ rebar3 diameter clean
===> Cleaning diameter compiled files...

The plugin will compile all .dia files by default. You can use the option below to compile only specific diameter dictionaries

{dia_only_files, [
    your_dictionary_name
    ]}.

Testing

One test compiles a .dia file for validation, another compares the generated erl/hrl files with the expected files in test/expected directory.

rebar3 eunit

If the format changes in the future(for example due a compiler change), the expected files can be re-generated with GOLDEN_RUN=1 rebar3 eunit. This will overwrite the existing expected files.

The test filters out simple differences between OTP versions like blank lines and -moduledoc(false). in more recent versions.

Publishing new versions to hex.pm

This is mostly a reminder on how to bump and publish a new version.

# Reformat code and generate docs
rebar3 do edoc, format
# Run tests
rebar3 eunit
# Login to Hex
rebar3 hex user auth
# Cut new version with hex
rebar3 hex cut

About

Compile Diameter .dia files on Erlang Rebar3 projects

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Contributors 9

Languages