X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f5056b8816239a98d398b6eba7caf9b683f463ca..3a49dbda04d01ea83d6a3fde721c28cbebff58eb:/build/run-library.sh diff --git a/build/run-library.sh b/build/run-library.sh index 2082dc94a0..6fdc4aafcd 100755 --- a/build/run-library.sh +++ b/build/run-library.sh @@ -532,15 +532,19 @@ handle_rails_package() { # gems that are already available system-wide... and then it complains # that your bundle is incomplete. Work around this by fetching gems # manually. + # TODO: Once all our supported distros have Ruby 3+, we can modify + # the awk script to print "NAME:VERSION" output, and pipe that directly + # to `xargs -0r gem fetch` for reduced overhead. mkdir -p vendor/cache awk -- ' -BEGIN { OFS=":"; ORS="\0"; } -(/^[[:space:]]*$/) { level=0; } -($0 == "GEM" || $0 == " specs:") { level+=1; } -(level == 2 && NF == 2 && $1 ~ /^[[:alpha:]][-_[:alnum:]]*$/ && $2 ~ /^\([[:digit:]]+[-_+.[:alnum:]]*\)$/) { - print $1, substr($2, 2, length($2) - 2); +BEGIN { OFS="\0"; ORS="\0"; } +(/^[A-Z ]*$/) { level1=$0; } +(/^ [[:alpha:]]+:$/) { level2=substr($0, 3, length($0) - 3); next; } +(/^ {0,3}[[:alpha:]]/) { level2=""; next; } +(level1 == "GEM" && level2 == "specs" && NF == 2 && $1 ~ /^[[:alpha:]][-_[:alnum:]]*$/ && $2 ~ /\([[:digit:]]+[-_+.[:alnum:]]*\)$/) { + print "--version", substr($2, 2, length($2) - 2), $1; } -' Gemfile.lock | env -C vendor/cache xargs -0r gem fetch +' Gemfile.lock | env -C vendor/cache xargs -0r --max-args=3 gem fetch # Despite the bug, we still run `bundle cache` to make sure Bundler is # happy for later steps. bundle cache