hexpm / hex

Package manager for the Erlang ecosystem.
https://hex.pm
961 stars 184 forks source link

Implement exit statuses #1008

Closed ream88 closed 6 months ago

ream88 commented 6 months ago

Thanks for merging 92b48e4279954aeae59a4eaa953e10de059a6e8e, however I just found another small thing we could improve. Currently the mix tasks included in hex do all exit with code 0, even when an error occurred. This PR changes this to 1 which helps with scripts for example on GitHub CI.

wojtekmach commented 6 months ago

we have a set_exit_code utility function:

% rg set_exit_code
lib/mix/tasks/hex.repo.ex
230:        Mix.Tasks.Hex.set_exit_code(1)
235:        Mix.Tasks.Hex.set_exit_code(1)

lib/mix/tasks/hex.ex
420:    def set_exit_code(code), do: throw({:exit_code, code})
423:    def set_exit_code(code), do: System.at_exit(fn _ -> System.halt(code) end)

lib/mix/tasks/hex.publish.ex
104:              _ -> Mix.Tasks.Hex.set_exit_code(1)
157:            Mix.Tasks.Hex.set_exit_code(1)

lib/mix/tasks/hex.audit.ex
42:        Mix.Tasks.Hex.set_exit_code(1)

lib/mix/tasks/hex.info.ex
80:        Mix.Tasks.Hex.set_exit_code(1)
85:        Mix.Tasks.Hex.set_exit_code(1)
98:        Mix.Tasks.Hex.set_exit_code(1)
103:        Mix.Tasks.Hex.set_exit_code(1)

lib/mix/tasks/hex.outdated.ex
130:    if outdated?, do: Mix.Tasks.Hex.set_exit_code(1)
196:          Mix.Tasks.Hex.set_exit_code(1)
202:          Mix.Tasks.Hex.set_exit_code(1)

lib/mix/tasks/hex.package.ex
253:      Mix.Tasks.Hex.set_exit_code(code)
266:      Mix.Tasks.Hex.set_exit_code(code)

if it's not used on the task you worked on, could you send another PR using that utility? Thanks!

ream88 commented 6 months ago

Ah sorry, I did not check the other tasks. Yep will create a new PR.