pipefail is not needed because no pipe is used