Edit File: ruby.cpython-37.pyc
B 5/9e� � @ s� d dl mZ d dlZddlmZ d dlmZ d dlmZ d dl m Z mZmZ d dl mZ d d lmZ d d lmZ G dd� de�ZdS ) � )�absolute_importN� )�WizardInstaller)�InstallationFailedException)�MODULES_LOGS_DIR)�ExternalProgramFailed�is_litespeed_running�get_passenger_package_name)�installed_interpreters_list)� get_ui_config)�Featurec sd e Zd Zej�ed�Zej Z � fdd�Zdd� Zdd� Z dd � Zd d� Zdd � Zedd� �Z� ZS )� RubyInstallerzruby.logc s t t| ��� d S )N)�superr �__init__)�self)� __class__� �py/clwizard/modules/ruby.pyr s zRubyInstaller.__init__c C sn g }x&|D ]}d|� dd� }|�|� q W | j�dd�|�� y| j|� W n tk rh t� �Y nX d S )Nzalt-ruby�.� z-Try to install Ruby package with versions: %s�,)�replace�appendZ app_logger�info�joinZ_install_yum_groupsr r )r �versions�groups�vZpackage_namer r r �_install_ruby_versions s z$RubyInstaller._install_ruby_versionsc C sF d}t j�|�sdS y| �d|g� W n tk r@ t� �Y nX dS )a In order to make ruby apps work on Litespeed server we need to do run extra script see docs for details: https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cloudlinux:enable_passenger :return: z9/usr/local/lsws/admin/misc/enable_ruby_python_selector.shNZsh)�os�path�isfile�_run_commandr r )r Zlitespeed_scriptr r r �_configure_for_litespeed_server* s z-RubyInstaller._configure_for_litespeed_serverc C s* | � t� �o(t� p(t� �di ��d� S )a� Check that ruby selector is ready to work All configurations were done: - passenger is installed We always have at least one ruby package installed, because it is dependency of passenger package, so we can skip such check If the config file does not exist, we ignore the uiSettings :return: already_configured status :rtype: bool Z uiSettingsZhideRubyApp)Z_is_package_installedr r �get)r r r r �_is_already_configured<