anchor.diff:                false -> []
             end,
     %% merge extra deps, but do not self-include
  -  Deps = merge_deps(Deps0, DepsToAdd, AppNames) -- [App0],
  +  Deps = add_to_list(Deps0, DepsToAdd) -- [App0],
     NewProps = lists:keystore(relup_deps, 1, Props, {relup_deps, Deps}),
     AppSpec = {application, AppName, NewProps},
     AppSpecIoData = io_lib:format("~p.", [AppSpec]),
  
positive.code:   io:format(standard_error, "~s", [usage()]),
    erlang:halt(1).
  
  inject(Profile) ->
    LibDir = lib_dir(Profile),
    AppNames = list_apps(LibDir),
    lists:foreach(fun({App, Deps}) -> inject(App, Deps, LibDir, AppNames) end, deps(Profile)).
  
  %% list the profile/lib dir to get all apps
  list_apps(LibDir) ->
  
negative.code: -spec deps(string()) -> [{app(), [deps_overlay()]}].
  deps(_Profile) ->
    [ {emqx_dashboard, [{re, "emqx_.*"}]}
    , {emqx_management, [{re, "emqx_.*"}]}
    , {{re, "emqx_.*"}, [emqx]}
    , {{re, "emqx_auth_.*"}, [emqx_passwd]}
    ].
  
  main([Profile | _]) ->
  