[fastlane_core] prevent negative argument error for message formatting #20857
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Checklist
bundle exec rspec
from the root directory to see all new and existing tests passbundle exec rubocop -a
to ensure the code style is validci/circleci
builds in the "All checks have passed" section of my PR (connect CircleCI to GitHub if not)Motivation and Context
When trying to run Fastlane on a Windows CI instance, it fails with
negative argument
C:/tools/ruby31/lib/ruby/gems/3.1.0/gems/fastlane-2.211.0/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb:95:in `*': \e[31m[!] negative argument\e[0m (ArgumentError)
This problem was identified in this issue:
#20123
Description
Seems
TTY::Screen.width
is not reliable and can result in theTTY::Screen.width - format.length
calculation to be negative, which will break when trying to dosuccess("-" * i)
wherei
is negative. This change will limit the valuei
to be greater or equal to zero.Testing Steps
Tested running with my changes in our CI (using Git bash for Windows), works as expected:
Output: