rvm / gem-wrappers

Create gem wrappers for easy use of gems in cron and other system locations.
Other
14 stars 4 forks source link

Gem wrappers

Gem Version Code Climate Coverage Status Build Status Dependency Status Documentation

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)