Chef-users mailing list suggested to me a solution for regexp
pasver =
/usr/local/rvm/bin/gem list | grep passenger
.sub /.((.)).*/m, '\1'But It is not all, there was a problem with using this code in erb template itself. Variable value disappears, but I don'k know why.
For example this code isn't worked.
<% pasver = `/usr/local/rvm/bin/gem list | grep passenger`.sub /.*\((.*)\).*/, '\1'.chomp %>
PassengerRoot <%= "/usr/local/rvm/gems/#{node['redmine']['rubyversion']}/gems/passenger-#{pasver.chomp!}" %>
PassengerDefaultRuby /usr/local/rvm/wrappers/<%= node['redmine']['rubyversion']%>/ruby
This file generates:
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.19
/buildout/apache2/mod_passenger.so
I don't get strange behaviour in IRB never. But chef runtime is something else.
My solution is using variables in recipe and then pass it to template resource:
template ".." do
variables ({
:pasver => pasver
})
end