Gem wrappers
Create gem wrappers for easy use of gems in cron and other system locations.
Installation
This gem should be available in RVM 1.25+
, to install manually:
gem install gem-wrappers
Configuration / Defaults
In ~/.gemrc
you can overwrite this defaults:
wrappers_path: GEM_HOME/wrappers
wrappers_environment_file: GEM_HOME/environment
wrappers_path_take: 1
It is not yet possible to put variables in the configuration, only relative and full paths will work, open a ticket if you need variables.
Generating wrappers
By default wrappers are installed when a gem is installed,
to rerun the process for all gems in GEM_HOME
use:
gem wrappers regenerate
wrappers will be generated in $GEM_HOME/wrappers/
.
Example
Install popular http server unicorn
:
gem install gem-wrappers # assuming it was not installed already
gem install unicorn
The unicorn
wrapper is located in $GEM_HOME/wrappers
:
gem wrappers show unicorn
/home/mpapis/.rvm/gems/ruby-2.1.0-preview2/wrappers/unicorn
This script will make sure proper environment is available.
Generating scripts wrappers
It is possible to generate wrappers for custom scripts:
gem wrappers /path/to/script
a wrapper $GEM_HOME/wrappers/script
will be generated.
Showing current configuration
To see paths that are used by gem run:
gem wrappers
Environment file
User can provide his own environment
file,
in case it is not available during generating wrappers it will be created using this template:
export PATH="<%= path.join(":") %>:$PATH"
export GEM_PATH="<%= gem_path.join(":") %>"
export GEM_HOME="<%= gem_home %>"
The path
elements are calculated using this algorithm:
ENV['PATH'].split(":").take(Gem.path.size + path_take)