     if exec do
       { config.update_commands([{:require,exec}|&1]), t }
     else
-      IO.puts(:stderr, "Could not find executable #{h}")
-      System.halt(1)
+      { config.update_errors(["-S : Could not find executable #{h}" | &1]), t }
     end
   end
 

    files = Enum.uniq(files)
    files = Enum.filter files, File.regular?(&1)

    if files == [] do
      IO.puts(:stderr, "-pr : No files matched pattern #{pattern}")
      System.halt(1)
    else
      Kernel.ParallelRequire.files(files)
    end
  end



  defp process_command({:eval, expr}, _config) when is_binary(expr) do
    Code.eval(expr, [])
    :ok
  end

  defp process_command({:app, app}, _config) when is_binary(app) do
    case Application.Behaviour.start(binary_to_atom(app)) do
      { :error, reason } ->
        { :error, "--app : Could not start application #{app}: #{inspect reason}" }
      :ok ->
        :ok
    end
  end

  defp process_command({:require, file}, _config) when is_binary(file) do
    if File.regular?(file) do
      Code.require_file(file)
      :ok
    else
      { :error, "-r : No file named #{file}" }
    end
  end

  defp process_command({:parallel_require, pattern}, _config) when is_binary(pattern) do
