assign_exit_status_for_issues.ex (509B)
1 defmodule Credo.Execution.Task.AssignExitStatusForIssues do 2 @moduledoc false 3 4 use Credo.Execution.Task 5 6 import Bitwise 7 8 def call(exec, _opts) do 9 exit_status = 10 exec 11 |> get_issues() 12 |> to_exit_status() 13 14 put_exit_status(exec, exit_status) 15 end 16 17 # Converts the return value of a Command.run() call into an exit_status 18 defp to_exit_status([]), do: 0 19 20 defp to_exit_status(issues) do 21 issues 22 |> Enum.map(& &1.exit_status) 23 |> Enum.reduce(0, &(&1 ||| &2)) 24 end 25 end