Skip to content

gmtprime/version_check

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VersionCheck

Build Status Hex pm hex.pm downloads Deps Status Inline docs

This module defines an application and a macro to generate alerts about new versions of applications in Hex. The messages are shown using Logger as a warning.

When starting an app using the function or the VersionCheck application you should see something like:

% iex -S mix
Erlang/OTP 19 [erts-8.1] [source-4cc2ce3] [64-bit] [smp:8:8] [async-threads:10]
[hipe] [kernel-poll:false]

Interactive Elixir (1.3.2) - press Ctrl+C to exit (type h() ENTER for help)

17:30:42.454 [warn] A new yggdrasil version is available (2.0.8 > 2.0.7)
17:30:42.454 [debug] Using the latest version of :version_check (0.1.0)
iex(1)>

Using VersionCheck

When adding use VersionCheck to a module, the module adds the public function check_version/0. If it is called from inside the start/2 function of the Application behaviour it'll check the current application version against hex.pm before it starts i.e:

defmodule MyApp do
  use Application
  use VersionCheck, application: :my_app

  def start(_type, _args) do
    import Supervisor.Spec, warn: false

    check_version()

    children = [
      (...)
    ]
        
    opts = (...)

    Supervisor.start_link(children, opts)
  end
end

VersionCheck App

It is also possible to add VersionCheck to your required applications in your mix.exs file i.e:

def application do
  [applications: [:version_check]]
end

This app will check the version of every application started. That's why it should be the last application in the list.

Installation

Just add it to your deps:

def deps do
  [{:version_check, "~> 0.1"}]
end

To use it as an application, ensure it is started before your application and after all the applications required by your application:

def application do
  [applications: [(...), :version_check]]
end

Credits

VersionCheck owns its existence to the study and "code borrowing" from Credo's function that checks for updates.

Author

Alexander de Sousa.

License

Yggdrasil is released under the MIT License. See the LICENSE file for further details.