Getting elixir app version from command line

In some cases you need to know the version that is defined in your applications mixfile from the command line, maybe for an automated deployment process. No matter the case here is how you do it:

create a mix task and place it at lib/mix/tasks/app/version.ex

defmodule Mix.Tasks.App.Version do
  use Mix.Task

  def run(_) do
    IO.puts Mix.Project.config[:version]
  end
end

Now you can easily get the current version by running mix app.version in your terminal.

Update:

If you don’t like the idea of adding a mix task for this or you cannot run mix in the environment you’re in I found this little command helpful:

cat mix.exs | grep version | sed -e 's/.*version: "\(.*\)",/\1/'

Happy coding!