From 65be80f2c66971764553fe26bd972d43e6597c29 Mon Sep 17 00:00:00 2001 From: Evax Software Date: Wed, 18 Jan 2012 14:52:46 +0100 Subject: [PATCH 1/2] escape user parameter in __rvm* types --- conf/type/__rvm_gem/explorer/state | 6 +++--- conf/type/__rvm_gem/gencode-remote | 4 ++-- conf/type/__rvm_gem/manifest | 6 +++--- conf/type/__rvm_gemset/explorer/state | 6 +++--- conf/type/__rvm_gemset/gencode-remote | 6 +++--- conf/type/__rvm_gemset/manifest | 4 ++-- conf/type/__rvm_ruby/explorer/state | 4 ++-- conf/type/__rvm_ruby/gencode-remote | 6 +++--- 8 files changed, 21 insertions(+), 21 deletions(-) diff --git a/conf/type/__rvm_gem/explorer/state b/conf/type/__rvm_gem/explorer/state index e7f50247..b0232985 100755 --- a/conf/type/__rvm_gem/explorer/state +++ b/conf/type/__rvm_gem/explorer/state @@ -23,13 +23,13 @@ gemset="$(cat "$__object/parameter/gemset")" ruby="$(echo "$gemset" | cut -d '@' -f 1)" gemsetname="$(echo "$gemset" | cut -d '@' -f2)" user="$(cat "$__object/parameter/user")" -if su - $user -c "[ ! -d \"\$HOME/.rvm\" ]" ; then +if su - "$user" -c "[ ! -d \"\$HOME/.rvm\" ]" ; then echo "removed" exit 0 fi -if su - $user -c "source \"\$HOME/.rvm/scripts/rvm\" +if su - "$user" -c "source \"\$HOME/.rvm/scripts/rvm\" rvm list | grep -q $ruby"; then - if su - $user -c "source \"\$HOME/.rvm/scripts/rvm\" + if su - "$user" -c "source \"\$HOME/.rvm/scripts/rvm\" rvm use $ruby > /dev/null; rvm gemset list | grep -q $gemsetname && rvm use $gemset > /dev/null && gem list | grep -q $gem"; then echo "installed" diff --git a/conf/type/__rvm_gem/gencode-remote b/conf/type/__rvm_gem/gencode-remote index 8b784ac3..80e1becf 100755 --- a/conf/type/__rvm_gem/gencode-remote +++ b/conf/type/__rvm_gem/gencode-remote @@ -29,13 +29,13 @@ if [ "$state_is" != "$state_should" ]; then case "$state_should" in installed) cat << DONE -su - $user -c "source \"\\\$HOME/.rvm/scripts/rvm\" +su - "$user" -c "source \"\\\$HOME/.rvm/scripts/rvm\" rvm use $gemset; gem install $gem" DONE ;; removed) cat << DONE -su - $user -c "source \"\\\$HOME/.rvm/scripts/rvm\" +su - "$user" -c "source \"\\\$HOME/.rvm/scripts/rvm\" rvm use $gemset; gem uninstall $gem" DONE ;; diff --git a/conf/type/__rvm_gem/manifest b/conf/type/__rvm_gem/manifest index 737dbe75..245c865d 100755 --- a/conf/type/__rvm_gem/manifest +++ b/conf/type/__rvm_gem/manifest @@ -31,8 +31,8 @@ else echo $default > "$__object/parameter/default" fi -__rvm $user --state installed +__rvm "$user" --state installed require="__rvm/$user" \ - __rvm_ruby $ruby --user $user --state installed --default $default + __rvm_ruby $ruby --user "$user" --state installed --default $default require="__rvm_ruby/$ruby" \ - __rvm_gemset $gemset --user $user --state installed --default $default + __rvm_gemset $gemset --user "$user" --state installed --default $default diff --git a/conf/type/__rvm_gemset/explorer/state b/conf/type/__rvm_gemset/explorer/state index 43667126..b33f570e 100755 --- a/conf/type/__rvm_gemset/explorer/state +++ b/conf/type/__rvm_gemset/explorer/state @@ -22,13 +22,13 @@ gemset="$__object_id" ruby="$(echo "$gemset" | cut -d '@' -f 1)" gemsetname="$(echo "$gemset" | cut -d '@' -f2)" user="$(cat "$__object/parameter/user")" -if su - $user -c "[ ! -d \"\$HOME/.rvm\" ]" ; then +if su - "$user" -c "[ ! -d \"\$HOME/.rvm\" ]" ; then echo "removed" exit 0 fi -if su - $user -c "source \"\$HOME/.rvm/scripts/rvm\" +if su - "$user" -c "source \"\$HOME/.rvm/scripts/rvm\" rvm list | grep -q $ruby"; then - if su - $user -c "source \"\$HOME/.rvm/scripts/rvm\" + if su - "$user" -c "source \"\$HOME/.rvm/scripts/rvm\" rvm use $ruby > /dev/null; rvm gemset list | grep -q $gemsetname"; then echo "installed" exit 0 diff --git a/conf/type/__rvm_gemset/gencode-remote b/conf/type/__rvm_gemset/gencode-remote index 5b934edb..a18e9a38 100755 --- a/conf/type/__rvm_gemset/gencode-remote +++ b/conf/type/__rvm_gemset/gencode-remote @@ -28,7 +28,7 @@ if [ "$state_is" != "$state_should" ]; then case "$state_should" in installed) cat << DONE -su - $user -c "source \"\\\$HOME/.rvm/scripts/rvm\" +su - "$user" -c "source \"\\\$HOME/.rvm/scripts/rvm\" rvm $gemset --create" DONE case "$default" in @@ -36,7 +36,7 @@ DONE ;; *) cat << DONE -su - $user -c "source \"\\\$HOME/.rvm/scripts/rvm\" +su - "$user" -c "source \"\\\$HOME/.rvm/scripts/rvm\" rvm use --default $gemset" DONE ;; @@ -44,7 +44,7 @@ DONE ;; removed) cat << DONE -su - $user -c "source \"\\\$HOME/.rvm/scripts/rvm\" +su - "$user" -c "source \"\\\$HOME/.rvm/scripts/rvm\" rvm use $ruby; rvm --force gemset delete $gemsetname" DONE ;; diff --git a/conf/type/__rvm_gemset/manifest b/conf/type/__rvm_gemset/manifest index 8e25251c..f9941515 100755 --- a/conf/type/__rvm_gemset/manifest +++ b/conf/type/__rvm_gemset/manifest @@ -29,7 +29,7 @@ else default="no" fi -__rvm $user --state installed +__rvm "$user" --state installed require="__rvm/$user" \ - __rvm_ruby $ruby --user $user --state installed --default $default + __rvm_ruby $ruby --user "$user" --state installed --default $default diff --git a/conf/type/__rvm_ruby/explorer/state b/conf/type/__rvm_ruby/explorer/state index 1fc9e0a8..71d682be 100755 --- a/conf/type/__rvm_ruby/explorer/state +++ b/conf/type/__rvm_ruby/explorer/state @@ -20,11 +20,11 @@ ruby="$__object_id" user="$(cat "$__object/parameter/user")" -if su - $user -c "[ ! -d \"\$HOME/.rvm\" ]" ; then +if su - "$user" -c "[ ! -d \"\$HOME/.rvm\" ]" ; then echo "removed" exit 0 fi -if su - $user -c "source \"\$HOME/.rvm/scripts/rvm\" +if su - "$user" -c "source \"\$HOME/.rvm/scripts/rvm\" rvm list | grep -q $ruby"; then echo "installed" else diff --git a/conf/type/__rvm_ruby/gencode-remote b/conf/type/__rvm_ruby/gencode-remote index 5dcb0e99..a3bcf318 100755 --- a/conf/type/__rvm_ruby/gencode-remote +++ b/conf/type/__rvm_ruby/gencode-remote @@ -26,19 +26,19 @@ state_should="$(cat "$__object/parameter/state")" if [ "$state_is" != "$state_should" ]; then case "$state_should" in installed) - echo "su - $user -c \"source \\\$HOME/.rvm/scripts/rvm;"\ + echo "su - \"$user\" -c \"source \\\$HOME/.rvm/scripts/rvm;"\ "rvm install $ruby\"" case "$default" in no) ;; *) - echo "su - $user -c \"source \\\$HOME/.rvm/scripts/rvm;"\ + echo "su - \"$user\" -c \"source \\\$HOME/.rvm/scripts/rvm;"\ "rvm use --default $ruby\"" ;; esac ;; removed) - echo "su - $user -c \"source \\\$HOME/.rvm/scripts/rvm;"\ + echo "su - \"$user\" -c \"source \\\$HOME/.rvm/scripts/rvm;"\ "rvm remove $ruby\"" ;; esac From 5fa264601116ca4687cb48478bedf66974a93c10 Mon Sep 17 00:00:00 2001 From: Evax Software Date: Wed, 18 Jan 2012 15:13:53 +0100 Subject: [PATCH 2/2] fix default parameter handling in __rvm_gemset --- conf/type/__rvm_gemset/gencode-remote | 1 + conf/type/__rvm_gemset/manifest | 1 + 2 files changed, 2 insertions(+) diff --git a/conf/type/__rvm_gemset/gencode-remote b/conf/type/__rvm_gemset/gencode-remote index a18e9a38..0e240462 100755 --- a/conf/type/__rvm_gemset/gencode-remote +++ b/conf/type/__rvm_gemset/gencode-remote @@ -23,6 +23,7 @@ ruby="$(echo "$gemset" | cut -d '@' -f 1)" gemsetname="$(echo "$gemset" | cut -d '@' -f 2)" state_is="$(cat "$__object/explorer/state")" user="$(cat "$__object/parameter/user")" +default="$(cat "$__object/parameter/default")" state_should="$(cat "$__object/parameter/state")" if [ "$state_is" != "$state_should" ]; then case "$state_should" in diff --git a/conf/type/__rvm_gemset/manifest b/conf/type/__rvm_gemset/manifest index f9941515..4fdf9cb1 100755 --- a/conf/type/__rvm_gemset/manifest +++ b/conf/type/__rvm_gemset/manifest @@ -27,6 +27,7 @@ if [ -f "$__object/parameter/default" ]; then default="$(cat "$__object/parameter/default")" else default="no" + echo $default > "$__object/parameter/default" fi __rvm "$user" --state installed