Skip to content

Instantly share code, notes, and snippets.

@silenius
Created May 19, 2015 08:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save silenius/09584572c8eb4bb0141b to your computer and use it in GitHub Desktop.
Save silenius/09584572c8eb4bb0141b to your computer and use it in GitHub Desktop.
{% set args = salt['pillar.get']('venvs:ruby:{}'.format(venv)) %}
{% set is18 = args.ruby_version.startswith('1.8') %}
{% set rbenv_root = '/usr/local/venvs/{}/rbenv'.format(venv) %}
include:
- users.webapps.{{ args.user }}
- pkgs.rbenv
{{ venv }}:
cmd.run:
- name: rbenv install {{ args.ruby_version }}
- user: {{ args.user }}
- group: {{ args.user }}
- cwd: {{ rbenv_root }}
- env:
- RBENV_ROOT: {{ rbenv_root }}
{% if is18 %}
- CC: gcc48
{% endif %}
- require:
- file: {{ rbenv_root }}
- pkg: rbenv
- pkg: ruby-build
- pkg: subversion
{% if is18 %}
- pkg: gcc48
{% endif %}
{{ venv }}_deps_requirements:
file.managed:
- name: /tmp/{{ venv }}-requirements.txt
- source: salt://venvs/ruby/{{ venv }}-requirements.txt
- user: {{ args.user }}
- group: {{ args.user }}
- mode: 400
- replace: True
{{ venv }}_deps:
cmd.wait:
- name: >
eval "$(rbenv init -)" &&
rbenv shell {{ args.ruby_version }} &&
gem install rubygems-update &&
gem update --system &&
gem install bundler &&
rbenv rehash &&
bundle install --quiet --gemfile /tmp/{{ venv }}-requirements.txt
- user: {{ args.user }}
- group: {{ args.user }}
- cwd: {{ rbenv_root }}
- shell: /usr/local/bin/bash
- watch:
- cmd: {{ venv }}
- require:
- file: {{ venv }}_deps_requirements
- env:
- RBENV_ROOT: {{ rbenv_root }}
{% if is18 %}
- CC: gcc48
{% endif %}
#rbenv_root:
# environ.setenv:
# - name: rbenv_root
# - value:
# RBENV_ROOT: {{ rbenv_root }}
#{{ venv }}:
# rbenv.installed:
# - name: {{ args.ruby_version }}
# - user: {{ args.user }}
# - require:
# - file: /usr/local/venvs/{{ venv }}/rbenv
{{ venv }}_dir:
file.directory:
- name: {{ rbenv_root }}
- user: {{ args.user }}
- group: {{ args.user }}
- mode: 755
- makedirs: True
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment