Skip to content
This repository has been archived by the owner on Sep 18, 2021. It is now read-only.
/ shaker Public archive

Convert rebar projects to mix projects with one command!

Notifications You must be signed in to change notification settings

spawnfest/shaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shaker

Shaker - CLI tool, that automates migrations from Rebar3 into Mix for Erlang projects of any kind. It supports:

  • Applications
  • Libraries
  • Escripts
  • Releases (not yet)
  • Erlang test-lint tools support (eunit, ct, elvis)
  • Any other tools you can imagine as an Erlang project

The problem

While Mix tools is perfect for both Erlang and Elixir projects, it's not so much distributed inside Erlang's world. One of the main reasons - severity of migration already existing projects from one package manager into another.

This process can and must be automated. Shaker tries to eliminate this gap.

Quick start

Project is made in a form of a mix archive, which can be simply installed from Hex:

$ mix archive.install hex shaker

This installation brings to a user a new mix command:

$ mix rebar2mix

This command must be executed inside any valid Rebar3 project, with next effects:

  1. An interactive process of mix project generation starts
  2. During the process user can be prompted to choose different options and configurations
  3. After the process is finished - mix project artifacts are created in the manner, when the project itself is ready to run inside a mix package management tool.

For example

$ mix deps.get
$ iex -S mix
$ mix test
$ mix compile
$ mix deps.get

will be available to run as in a standard mix project.

You can also run other task to generate config.exs file from sys.config

$ mix sys2config

Roadmap

  1. Improve the code quality - making refactoring, adding more tests, docs and specs
  2. Implementing more and more uncovered Rebar3 features, until full coverage.
  3. Relx
  4. sys.config detection
  5. Overrides handling

Contributions

Project is still in an active development phase so feel free to submit any Issues or Pull requests!

About

Convert rebar projects to mix projects with one command!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published