anchor.diff:  hook_run([{sh,File}|Hooks],_HookPath,Cwd,Args, Results) ->
       {ok,Old} = file:get_cwd(),
       file:set_cwd(Cwd),
  -
  -    Result = [sh(F++" "++string:join(Args," "),[]) || F <- File],
  +    RunSh = fun(F) ->
  +                    case sh(F++" "++string:join(Args, ""), []) of
  +                        {ok, Out} ->
  +                            file:write(standard_io, Out),
  +                            Out;
  +                        {error, Rc} ->
  +                            ?ABORT("wtf?!? we shojld not be here, ever! ~p",[Rc])
  +                    end
  +            end,
  +
  +
  +
  +    Result = [RunSh(F) || F <- File],
       file:set_cwd(Old),
       hook_run(Hooks,_HookPath,Cwd,Args,Result++Results);
   
  
positive.code:     case sh_loop(Port, OutputHandler, []) of
          {ok, _Output} = Ok ->
              Ok;
          {error, Rc} ->
              ErrorHandler(Command, Rc)
      end.
  
  
negative.code:         {Port, {exit_status, 0}} ->
              {ok, lists:flatten(Acc)};
          {Port, {exit_status, Rc}} ->
              {error, {Rc, lists:flatten(Acc)}}
      end.
  
  
  