This commit is contained in:
Nico Schottelius 2012-01-18 14:35:35 +01:00
commit 6df60b9908
23 changed files with 715 additions and 0 deletions

26
conf/type/__rvm/explorer/state Executable file
View file

@ -0,0 +1,26 @@
#!/bin/sh
#
# 2012 Evax Software <contact@evax.fr>
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
user="$__object_id"
if su - $user -c "[ -d \"\$HOME/.rvm\" ]" ; then
echo "installed"
else
echo "removed"
fi

39
conf/type/__rvm/gencode-remote Executable file
View file

@ -0,0 +1,39 @@
#!/bin/sh
#
# 2012 Evax Software <contact@evax.fr>
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
user="$__object_id"
state_is="$(cat "$__object/explorer/state")"
state_should="$(cat "$__object/parameter/state")"
if [ "$state_is" != "$state_should" ]; then
case "$state_should" in
installed)
cat << DONE
su - $user -c "bash -s stable < <(curl -s \
https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)"
DONE
;;
removed)
cat << DONE
su - $user -c "rm -Rf \"\\\$HOME/.rvm\";
sed -i '/rvm\/scripts\/rvm/d' \"\\\$HOME/.bashrc\""
DONE
;;
esac
fi

45
conf/type/__rvm/man.text Normal file
View file

@ -0,0 +1,45 @@
cdist-type__rvm(7)
==================
Evax Software <contact@evax.fr>
NAME
----
cdist-type__rvm - Install rvm for a given user
DESCRIPTION
-----------
RVM is the Ruby enVironment Manager for the Ruby programming language.
REQUIRED PARAMETERS
-------------------
state::
Either "installed" or "removed".
EXAMPLES
--------
--------------------------------------------------------------------------------
# Install rvm for user billie
__rvm billie --state installed
# Remove rvm
__rvm billie --state removed
--------------------------------------------------------------------------------
SEE ALSO
--------
- cdist-type(7)
- cdist-type__rvm_ruby(7)
- cdist-type__rvm_gemset(7)
- cdist-type__rvm_gem(7)
COPYING
-------
Copyright \(C) 2012 Evax Software. Free use of this software is granted under
the terms of the GNU General Public License version 3 (GPLv3).

25
conf/type/__rvm/manifest Executable file
View file

@ -0,0 +1,25 @@
#!/bin/sh
#
# 2012 Evax Software <contact@evax.fr>
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
# rvm core dependencies
__package bash --state installed
__package curl --state installed
__package git-core --state installed
__package patch --state installed

View file

@ -0,0 +1 @@
state

View file

@ -0,0 +1,39 @@
#!/bin/sh
#
# 2012 Evax Software <contact@evax.fr>
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
gem="$__object_id"
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
echo "removed"
exit 0
fi
if su - $user -c "source \"\$HOME/.rvm/scripts/rvm\"
rvm list | grep -q $ruby"; then
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"
exit 0
fi
fi
echo "removed"

View file

@ -0,0 +1,43 @@
#!/bin/sh
#
# 2012 Evax Software <contact@evax.fr>
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
gem="$__object_id"
gemset="$(cat "$__object/parameter/gemset")"
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")"
state_should="$(cat "$__object/parameter/state")"
if [ "$state_is" != "$state_should" ]; then
case "$state_should" in
installed)
cat << DONE
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\"
rvm use $gemset; gem uninstall $gem"
DONE
;;
esac
fi

View file

@ -0,0 +1,57 @@
cdist-type__rvm_gemset(7)
==========================
Evax Software <contact@evax.fr>
NAME
----
cdist-type__rvm_gem - Manage Ruby gems through rvm
DESCRIPTION
-----------
RVM is the Ruby enVironment Manager for the Ruby programming language.
REQUIRED PARAMETERS
-------------------
user::
The remote user account to use
gemset::
The gemset to use
state::
Either "installed" or "removed".
OPTIONAL PARAMETERS
-------------------
default::
Make the selected gemset the default
EXAMPLES
--------
--------------------------------------------------------------------------------
# Install the rails gem in gemset ruby-1.9.3-p0@myset for user bill
__rvm_gemset rails --gemset ruby-1.9.3-p0@myset --user bill --state installed
# Do the same and also make ruby-1.9.3-p0@myset the default gemset
__rvm_gemset rails --gemset ruby-1.9.3-p0@myset --user bill \
--state installed --default yes
# Remove it
__rvm_ruby rails --gemset ruby-1.9.3-p0@myset --user bill --state removed
--------------------------------------------------------------------------------
SEE ALSO
--------
- cdist-type(7)
- cdist-type__rvm(7)
- cdist-type__rvm_ruby(7)
- cdist-type__rvm_gemset(7)
COPYING
-------
Copyright \(C) 2012 Evax Software. Free use of this software is granted under
the terms of the GNU General Public License version 3 (GPLv3).

38
conf/type/__rvm_gem/manifest Executable file
View file

@ -0,0 +1,38 @@
#!/bin/sh
#
# 2012 Evax Software <contact@evax.fr>
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
gem="$__object_id"
gemset="$(cat "$__object/parameter/gemset")"
ruby="$(echo "$gemset" | cut -d '@' -f 1)"
gemsetname="$(echo "$gemset" | cut -d '@' -f 2)"
user="$(cat "$__object/parameter/user")"
state="$(cat "$__object/explorer/state")"
if [ -f "$__object/parameter/default" ]; then
default="$(cat "$__object/parameter/default")"
else
default="no"
echo $default > "$__object/parameter/default"
fi
__rvm $user --state installed
require="__rvm/$user" \
__rvm_ruby $ruby --user $user --state installed --default $default
require="__rvm_ruby/$ruby" \
__rvm_gemset $gemset --user $user --state installed --default $default

View file

@ -0,0 +1 @@
default

View file

@ -0,0 +1,3 @@
state
gemset
user

View file

@ -0,0 +1,37 @@
#!/bin/sh
#
# 2012 Evax Software <contact@evax.fr>
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
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
echo "removed"
exit 0
fi
if su - $user -c "source \"\$HOME/.rvm/scripts/rvm\"
rvm list | grep -q $ruby"; then
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
fi
fi
echo "removed"

View file

@ -0,0 +1,52 @@
#!/bin/sh
#
# 2012 Evax Software <contact@evax.fr>
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
gemset="$__object_id"
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")"
state_should="$(cat "$__object/parameter/state")"
if [ "$state_is" != "$state_should" ]; then
case "$state_should" in
installed)
cat << DONE
su - $user -c "source \"\\\$HOME/.rvm/scripts/rvm\"
rvm $gemset --create"
DONE
case "$default" in
no)
;;
*)
cat << DONE
su - $user -c "source \"\\\$HOME/.rvm/scripts/rvm\"
rvm use --default $gemset"
DONE
;;
esac
;;
removed)
cat << DONE
su - $user -c "source \"\\\$HOME/.rvm/scripts/rvm\"
rvm use $ruby; rvm --force gemset delete $gemsetname"
DONE
;;
esac
fi

View file

@ -0,0 +1,54 @@
cdist-type__rvm_gemset(7)
==========================
Evax Software <contact@evax.fr>
NAME
----
cdist-type__rvm_gemset - Manage gemsets through rvm
DESCRIPTION
-----------
RVM is the Ruby enVironment Manager for the Ruby programming language.
REQUIRED PARAMETERS
-------------------
user::
The remote user account to use
state::
Either "installed" or "removed".
OPTIONAL PARAMETERS
-------------------
default::
If set to anything but "no" (the default), set the given gemset as default.
EXAMPLES
--------
--------------------------------------------------------------------------------
# Install the gemset @myset for user charles on based on ruby-1.9.3-0
__rvm_gemset ruby-1.9.3-p0@myset --user charles --state installed
# Do the same and make ruby-1.9.3-p0@myset the default gemset
__rvm_gemset ruby-1.9.3-p0@myset --user charles --state installed --default yes
# Remove the gemset @myset for user john
__rvm_ruby ruby-1.9.3-p0@myset --user john --state removed
--------------------------------------------------------------------------------
SEE ALSO
--------
- cdist-type(7)
- cdist-type__rvm(7)
- cdist-type__rvm_ruby(7)
- cdist-type__rvm_gem(7)
COPYING
-------
Copyright \(C) 2012 Evax Software. Free use of this software is granted under
the terms of the GNU General Public License version 3 (GPLv3).

35
conf/type/__rvm_gemset/manifest Executable file
View file

@ -0,0 +1,35 @@
#!/bin/sh
#
# 2012 Evax Software <contact@evax.fr>
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
gemset="$__object_id"
ruby="$(echo "$gemset" | cut -d '@' -f 1)"
gemsetname="$(echo "$gemset" | cut -d '@' -f 2)"
user="$(cat "$__object/parameter/user")"
state="$(cat "$__object/explorer/state")"
if [ -f "$__object/parameter/default" ]; then
default="$(cat "$__object/parameter/default")"
else
default="no"
fi
__rvm $user --state installed
require="__rvm/$user" \
__rvm_ruby $ruby --user $user --state installed --default $default

View file

@ -0,0 +1 @@
default

View file

@ -0,0 +1,2 @@
state
user

View file

@ -0,0 +1,32 @@
#!/bin/sh
#
# 2012 Evax Software <contact@evax.fr>
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
ruby="$__object_id"
user="$(cat "$__object/parameter/user")"
if su - $user -c "[ ! -d \"\$HOME/.rvm\" ]" ; then
echo "removed"
exit 0
fi
if su - $user -c "source \"\$HOME/.rvm/scripts/rvm\"
rvm list | grep -q $ruby"; then
echo "installed"
else
echo "removed"
fi

View file

@ -0,0 +1,45 @@
#!/bin/sh
#
# 2012 Evax Software <contact@evax.fr>
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
ruby="$__object_id"
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
installed)
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;"\
"rvm use --default $ruby\""
;;
esac
;;
removed)
echo "su - $user -c \"source \\\$HOME/.rvm/scripts/rvm;"\
"rvm remove $ruby\""
;;
esac
fi

View file

@ -0,0 +1,54 @@
cdist-type__rvm_ruby(7)
=======================
Evax Software <contact@evax.fr>
NAME
----
cdist-type__rvm_ruby - Manage ruby installations through rvm
DESCRIPTION
-----------
RVM is the Ruby enVironment Manager for the Ruby programming language.
REQUIRED PARAMETERS
-------------------
user::
The remote user account to use
state::
Either "installed" or "removed".
OPTIONAL PARAMETERS
-------------------
default:
If set to anything but "no" (the default), set the given version as default
EXAMPLES
--------
--------------------------------------------------------------------------------
# Install ruby 1.9.3 through rvm for user thelonious
__rvm_ruby ruby-1.9.3-p0 --user thelonious --state installed
# Install ruby 1.9.3 through rvm for user ornette and make it the default
__rvm_ruby ruby-1.9.3-p0 --user ornette --state installed --default yes
# Remove ruby 1.9.3 for user john
__rvm_ruby ruby-1.9.3-p0 --user john --state removed
--------------------------------------------------------------------------------
SEE ALSO
--------
- cdist-type(7)
- cdist-type__rvm(7)
- cdist-type__rvm_gemset(7)
- cdist-type__rvm_gem(7)
COPYING
-------
Copyright \(C) 2012 Evax Software. Free use of this software is granted under
the terms of the GNU General Public License version 3 (GPLv3).

83
conf/type/__rvm_ruby/manifest Executable file
View file

@ -0,0 +1,83 @@
#!/bin/sh
#
# 2012 Evax Software <contact@evax.fr>
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
if [ -f "$__object/parameter/default" ]; then
default="$(cat "$__object/parameter/default")"
else
default="no"
echo "$default" > "$__object/parameter/default"
fi
ruby="$__object_id"
user="$(cat "$__object/parameter/user")"
state="$(cat "$__object/explorer/state")"
apt_ruby="build-essential openssl libreadline6 libreadline6-dev curl git-core
zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3
libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison
subversion"
apt_jruby="curl g++ openjdk-6-jre-headless"
apt_jruby_head="ant openjdk-6-jdk"
apt_ironruby="curl mono-2.0-devel"
emerge_ruby="libiconv readline zlib openssl curl git libyaml sqlite libxslt
libtool gcc autoconf automake bison m4"
emerge_jruby="dev-java/sun-jdk dev-java/sun-jre-bin"
emerge_ironruby="dev-lang/mono"
pacman_ruby="gcc patch curl zlib readline libxml2 libxslt git autoconf
diffutils make libtool bison subversion"
pacman_jruby="jdk jre curl"
pacman_ironruby="mono"
yum_ruby="gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel
libffi-devel openssl-devel make bzip2 autoconf automake libtool bison
iconv-devel"
yum_jruby="java"
os="$(cat "$__global/explorer/os")"
case "$os" in
archlinux) type="pacman" ;;
debian|ubuntu) type="apt" ;;
gentoo) type="emerge" ;;
fedora|redhat|centos) type="yum" ;;
*);;
esac
case "$ruby" in
ruby-head*)
deps_list="${type}_ruby_head"
;;
ruby*)
deps_list="${type}_ruby"
;;
jruby-head*)
deps_list="${type}_jruby_head"
;;
jruby*)
deps_list="${type}_jruby"
;;
ironruby*)
deps_list="${type}_ironruby"
;;
esac
deps=$(eval echo \$$deps_list)
for p in $deps; do __package_${type} $p --state installed; done
__rvm "$user" --state installed

View file

@ -0,0 +1 @@
default

View file

@ -0,0 +1,2 @@
state
user