j$ z d dl mZ d dl mZ d dl mZ d dlZd dlZd dlZd dlmZ d dl Z d dl Z d dlZd dl mZ d dlmZ dd lmZ d d lmZmZ d dlmZmZ d dlmZ dd lmZ ddlmZ ddlm Z ddl!m"Z" d dl m#Z#mZ g dZ$ edd Z% edd Z&d Z'd Z(d Z)d Z*d Z+d#dZ,d Z-d#dZ.d Z/d Z0d! Z1d" Z2dS )$ )absolute_import)print_function)divisionN) namedtuple)List) iteritems )clpassenger)cpusers getCPName)drop_privilegesClPwd)is_no_php_binaries_on_cpanel)ClSelectExcept)NodeManager) PythonManager)get_abs_rel)Optionalr )public_htmlrubyvenv virtualenvz.cl.selectorz.cagefswwwnodevenvApplicationSummaryuserversiondoc_rootinterpreter app_statusInterpreterSummaryr version_fullenabled installedc @ d| v rt d t j | rt d | d dk rt d | t v rt d| z t j d| }|t d d S ) N z#Directory should not contain spacesz+Directory should be relative to user's home/z-Directory should not contain a trailing slashzDirectory "%s" not allowedz[-\.\w\/]+$z*Directory name contains invalid characters) ValueErrorospathisabsDISABLED_DIRECTORY_NAMESrematch) directory all_valids K/opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/clselectctl.pycheck_directoryr4 &