anchor.diff:      %% Load the app name and version from the .app file and construct
       %% the app identifier
       {ok, AppName, AppData} = rebar_app_utils:load_app_file(File),
  +
  +    %% Validate the .app file prior to installation
  +    validate_name(AppName, File),
  +    validate_modules(AppName, proplists:get_value(modules, AppData)),
  +
  +    %% Pull out the vsn and construct identifier
       Vsn = proplists:get_value(vsn, AppData),
       AppId = ?FMT("~s-~s", [AppName, Vsn]),
       ?CONSOLE("Installing: ~s\n", [AppId]),
  
positive.code: 
  beam_to_mod(Filename) ->
      list_to_atom(filename:basename(Filename, ".beam")).
  
negative.code:     %% Re-create target
      ok = rebar_file_utils:mkdir_p(AppDir),
  
      %% By default we copy the ebin, include, src and priv directories (if they exist)
      Files = [F || F <- ["ebin", "src", "priv", "include"],
                    filelib:last_modified(F) /= 0],
      ok = rebar_file_utils:cp_r(Files, AppDir),
  
      %% Check the config to see if we have any binaries that need to be
      %% linked into the erlang path
  