Skip to content

Commit 8ae2156

Browse files
Copilotbbartels
andauthored
fix: safely quote ruby mirror values in /etc/rvmrc
Agent-Logs-Url: https://github.com/bbartels/features/sessions/47fca3d3-4eb7-487d-9af5-e4b462552066 Co-authored-by: bbartels <[email protected]>
1 parent 7b5c864 commit 8ae2156

1 file changed

Lines changed: 14 additions & 4 deletions

File tree

src/ruby/install.sh

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -387,11 +387,21 @@ else
387387
fi
388388
validate_mirror_url "RUBY_SOURCE_MIRROR" "${RUBY_SOURCE_MIRROR:-}"
389389
validate_mirror_url "RUBY_BINARIES_MIRROR" "${RUBY_BINARIES_MIRROR:-}"
390-
if [ -n "${RUBY_SOURCE_MIRROR:-}" ] && ! grep -Fqx "rvm_rubies_url=${RUBY_SOURCE_MIRROR}" /etc/rvmrc 2>/dev/null; then
391-
echo "rvm_rubies_url=${RUBY_SOURCE_MIRROR}" >> /etc/rvmrc
390+
if [ -n "${RUBY_SOURCE_MIRROR:-}" ]; then
391+
ruby_source_mirror_escaped="$(printf "%s" "${RUBY_SOURCE_MIRROR}" | sed "s/'/'\"'\"'/g")"
392+
ruby_source_line_quoted="rvm_rubies_url='${ruby_source_mirror_escaped}'"
393+
ruby_source_line_plain="rvm_rubies_url=${RUBY_SOURCE_MIRROR}"
394+
if ! grep -Fqx "${ruby_source_line_quoted}" /etc/rvmrc 2>/dev/null && ! grep -Fqx "${ruby_source_line_plain}" /etc/rvmrc 2>/dev/null; then
395+
echo "${ruby_source_line_quoted}" >> /etc/rvmrc
396+
fi
392397
fi
393-
if [ -n "${RUBY_BINARIES_MIRROR:-}" ] && ! grep -Fqx "rvm_binaries_url=${RUBY_BINARIES_MIRROR}" /etc/rvmrc 2>/dev/null; then
394-
echo "rvm_binaries_url=${RUBY_BINARIES_MIRROR}" >> /etc/rvmrc
398+
if [ -n "${RUBY_BINARIES_MIRROR:-}" ]; then
399+
ruby_binaries_mirror_escaped="$(printf "%s" "${RUBY_BINARIES_MIRROR}" | sed "s/'/'\"'\"'/g")"
400+
ruby_binaries_line_quoted="rvm_binaries_url='${ruby_binaries_mirror_escaped}'"
401+
ruby_binaries_line_plain="rvm_binaries_url=${RUBY_BINARIES_MIRROR}"
402+
if ! grep -Fqx "${ruby_binaries_line_quoted}" /etc/rvmrc 2>/dev/null && ! grep -Fqx "${ruby_binaries_line_plain}" /etc/rvmrc 2>/dev/null; then
403+
echo "${ruby_binaries_line_quoted}" >> /etc/rvmrc
404+
fi
395405
fi
396406
# Install rvm
397407
run_rvm_installer "${RVM_INSTALL_ARGS}" || install_previous_version

0 commit comments

Comments
 (0)