j.( 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& ej' d Z(d Z)d Z*d Z+d Z,d Z-d$dZ.d Z/d$dZ0d Z1d! Z2d" Z3d# Z4dS )% )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 installedz\A[-\w./]*\Zc | st d d| v rt d t j | rt d | d dk rt d d| d v rt d | t v rt d | z t j d| }|t d d S ) NzDirectory must not be empty z#Directory should not contain spacesz+Directory should be relative to user's home/z-Directory should not contain a trailing slash..z(Directory must not contain ".." segmentszDirectory "%s" not allowedz\A[-\.\w\/]+\Zz*Directory name contains invalid characters) ValueErrorospathisabssplitDISABLED_DIRECTORY_NAMESrematch) directory all_valids K/opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/clselectctl.pycheck_directoryr6 ( s 86777 i>??? w}}Y IGHHH}HIII ys####CDDD,,,5 ABBB*I66IEFFF c | dv rdS t | st d d| d v sd| v rt d | d S )N). r: zAlias is not validr* r) z./)ALIAS_VALID_REr2 r+ r/ strip)aliass r5 get_aliasr> <