HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/states/__pycache__/rvm.cpython-310.pyc
o

�N�g�@sBdZddlZddd�Zddd�Zddd	�Zdd
d�Zdd
d�ZdS)a	
Managing Ruby installations and gemsets with Ruby Version Manager (RVM)
=======================================================================

This module is used to install and manage ruby installations and
gemsets with RVM, the Ruby Version Manager. Different versions of ruby
can be installed and gemsets created. RVM itself will be installed
automatically if it's not present. This module will not automatically
install packages that RVM depends on or ones that are needed to build
ruby. If you want to run RVM as an unprivileged user (recommended) you
will have to create this user yourself. This is how a state
configuration could look like:

.. code-block:: yaml

    rvm:
      group.present: []
      user.present:
        - gid: rvm
        - home: /home/rvm
        - require:
          - group: rvm

    rvm-deps:
      pkg.installed:
        - pkgs:
          - bash
          - coreutils
          - gzip
          - bzip2
          - gawk
          - sed
          - curl
          - git-core
          - subversion

    mri-deps:
      pkg.installed:
        - pkgs:
          - build-essential
          - openssl
          - libreadline6
          - libreadline6-dev
          - curl
          - git-core
          - zlib1g
          - zlib1g-dev
          - libssl-dev
          - libyaml-dev
          - libsqlite3-0
          - libsqlite3-dev
          - sqlite3
          - libxml2-dev
          - libxslt1-dev
          - autoconf
          - libc6-dev
          - libncurses5-dev
          - automake
          - libtool
          - bison
          - subversion
          - ruby

    jruby-deps:
      pkg.installed:
        - pkgs:
          - curl
          - g++
          - openjdk-6-jre-headless

    ruby-1.9.2:
      rvm.installed:
        - default: True
        - user: rvm
        - require:
          - pkg: rvm-deps
          - pkg: mri-deps
          - user: rvm

    jruby:
      rvm.installed:
        - user: rvm
        - require:
          - pkg: rvm-deps
          - pkg: jruby-deps
          - user: rvm

    jgemset:
      rvm.gemset_present:
        - ruby: jruby
        - user: rvm
        - require:
          - rvm: jruby

    mygemset:
      rvm.gemset_present:
        - ruby: ruby-1.9.2
        - user: rvm
        - require:
          - rvm: ruby-1.9.2
�NcCs td|�sd|d<d|d<|S)z+
    Check to see if rvm is installed.
    zrvm.is_installedF�resultzRVM is not installed.�comment)�__salt__)�ret�user�r�C/opt/saltstack/salt/lib/python3.10/site-packages/salt/states/rvm.py�
_check_rvmjsr	FcCs|t|||d�}|ds2td||||d�r(d|d<d|d|<d|d	<d
|d<n
d
|d<d|d	<|S|r<td
||d�|S)z?
    Verify that ruby is installed, install if unavailable
    )rrzrvm.install_ruby)�runas�opts�envTZ	Installed�changeszSuccessfully installed ruby.rF�defaultzCould not install ruby.zrvm.set_default�r
)�_check_rubyr)r�rubyrrrrrrr�_check_and_install_rubyts
rc	Cs�d}d}t�d�}|�|�rd}t�d|�rd}t�dd|�}td|d�D]4\}}}|d	kr6|�d
|��}|s>|�d|�}|sGt�dd|�}||krZd|d<d
|d<||d<|Sq&|S)z&
    Check that ruby is installed
    TFz-([0-9]{4}\.[0-9]{2}|p[0-9]+)$z^[a-z]+$z^ruby-�zrvm.listrr�-z-.*rzRequested ruby exists.rr)�re�compile�search�subr)	rrrZ
match_versionZmatch_micro_versionZmicro_version_regex�impl�versionrrrrr�s.

�rcCs�|ddid�}tdrd|�d�|d<|St||�}|dd	ur7td
|d�s-d|d<|St||||||d
�St||||||d
�S)a�
    Verify that the specified ruby is installed with RVM. RVM is
    installed when necessary.

    name
        The version of ruby to install

    default : False
        Whether to make this ruby the default.

    user: None
        The user to run rvm as.

    env: None
        A list of environment variables to set (ie, RUBY_CONFIGURE_OPTS)

    opts: None
        A list of option flags to pass to RVM (ie -C, --patch)

        .. versionadded:: 0.17.0
    Nr��namerrr
�testzRuby z is set to be installedrrFzrvm.installrzRVM failed to install.)rrr)�__opts__r	rr)rrrrrrrrr�	installed�s
��rrcCs�|ddid�}t||�}|ddur|Sd|vr2|�d�\}}t||�}|ds2d|d<d|d<|S|td	||d
�vrFd|d<d|d<|Std
rWd|d<d|��|d<|Std|||d
�rpd|d<d|d<d|d|<|Sd|d<d|d<|S)z�
    Verify that the gemset is present.

    name
        The name of the gemset.

    ruby: default
        The ruby version this gemset belongs to.

    user: None
        The user to run rvm as.

        .. versionadded:: 0.17.0
    NrrrF�@z,Requested ruby implementation was not found.rzrvm.gemset_listrTzGemset already exists.rzSet to install gemset zrvm.gemset_createzGemset successfully created.�createdr
zGemset could not be created.)r	�splitrrr)rrrrrrr�gemset_present�s6

��r#)N)FNNN)rN)�__doc__rr	rrrr#rrrr�<module>sf




+