anchor.diff:      {output_handler,
        fun(Line, Acc) ->
                ?CONSOLE("~s", [Line]),
  -             [Acc | Line]
  +             [Line | Acc]
        end};
   expand_sh_flag({use_stdout, false}) ->
       {output_handler,
        fun(Line, Acc) ->
  -             [Acc | Line]
  +             [Line | Acc]
        end};
   expand_sh_flag({cd, _CdArg} = Cd) ->
       {port_settings, Cd};
  
positive.code:         {Port, {data, {noeol, Line}}} ->
              sh_loop(Port, Fun, Fun(Line, Acc));
          {Port, {exit_status, 0}} ->
              {ok, lists:flatten(Acc)};
          {Port, {exit_status, Rc}} ->
              {error, Rc}
      end.
  
  beam_to_mod(Dir, Filename) ->
  
negative.code:     {port_settings, Env}.
  
  -spec log_and_abort(string(), integer()) -> no_return().
  log_and_abort(Command, {Rc, Output}) ->
      ?ABORT("~s failed with error: ~w and output:~n~s~n", [Command, Rc, Output]).
  
  sh_loop(Port, Fun, Acc) ->
      receive
  