Edit File: manager.cpython-37.opt-1.pyc
B �e#% � @ s� d dl mZ d dl mZ d dl mZ d dlZd dlZd dlZd dlmZ d dl Z d dl Z d dlmZm Z mZ d dlmZmZ d dlmZ d d lmZ ej�ed �Zeddd g�Zeddddg�Zeed eddd�eddd�f�eed eddd�eddd�f�eed eddd�eddd�f�eed eddd�eddd�f�eed eddd�eddd �f�hZd!Ze� dk�rzd"Zn e� d# Ze �e�Z d$d%� Z!d&d'� Z"efd(d)�Z#efd*d+�Z$d,d-� Z%d.d/� Z&dS )0� )�print_function)�absolute_import)�divisionN)� namedtuple)�get_file_lines�write_file_lines�mod_makedirs)�CLOUDLINUX_HOOKS�CONTACT_SUPPORT_MESSAGE_FOOTER)�get_cp_description)� StrictVersionzdirectadmin/�Hook�path�hook�HookPath�min_version�max_versionZuser_create_postz1.60zuser_create_post.shz'user_create_post/CL_user_create_post.shZuser_destroy_postzuser_destroy_post.shz)user_destroy_post/CL_user_destroy_post.shZuser_destroy_prezuser_destroy_pre.shz'user_destroy_pre/CL_user_destroy_pre.shZuser_restore_postzuser_restore_post.shz)user_restore_post/CL_user_restore_post.shZdomain_change_postzdomain_change_post.shz+domain_change_post/CL_domain_change_post.shz%/usr/local/directadmin/scripts/customz1.0�versionc C s t t�t d�kS )zS Check that DA has compatibility with folder-based hooks :return: Bool z1.60)r � DA_VERSION� r r ��/builddir/build/BUILDROOT/alt-python27-cllib-3.3.5-1.el8.cloudlinux.x86_64/opt/alt/python37/lib/python3.7/site-packages/clcommon/public_hooks/bundle/directadmin/manager.py�_folder_hooks_compatibility3 s r c C sd x^| D ]V}|j dkrd}ntt�t|j �k}|jdkr<d}ntt�t|j�k }|r|r|jS qW dS )z� hook = HookPath stucture return suitable hook name depending on version if return None - suitable hook not found NT)r r r r r )r �version_hookr r r r r �_get_hook_from_structure; s r c C s� t j�|| �}t�d|� yt�d�}W n4 tfk r\ } zt�dt |�� dS d}~X Y nX |j }|j}�yjt j�|��r�t |�}dd� |D �}d} d} xJ|D ]B}|�|�dkr�d } P |�d �r�|�d�dks�|�d�dkr�d } q�W | �s�| �r|�d | d � t||d� n�y�t j�|�\}} t j�|d| �}t�||� t �|d� t �|||� t|d| d | d d� t �|d� t �|||� W n> ttjfk �r� } zt�d|t |�t� W dd}~X Y nX W n: ttfk �r } zt�dt |�t� W dd}~X Y nX t j�|��s�y�t j�t j�|���sttt j�|�d� t �t j�|�d� t �t j�|�||� t|d| d d� t �|d� t �|||� W n: ttfk �r� } zt�dt |�t� W dd}~X Y nX dS )aa Creates DA hook Example args: da_hook_filename = user_create_post.sh da_hook_src = /usr/share/cagefs-plugins/hooks/directadmin/user_create_post.sh - command :param string da_hook_filename: How to name that hook in DA panel :param command: what we should run on hook :param string da_hook_default_dir: :return: None zRegistering %s action hookZdiradminz"failed to find 'diradmin' user: %sNc S s g | ]}|d kr|�qS )� r )�.0�liner r r � <listcomp>m s z"create_da_hook.<locals>.<listcomp>F���Tz#!/z/shz/bashr �wZold_i� z#!/bin/bash z1Failed to create hook for DirectAdmin: %s: %s. %sz.Failed to install hook for DirectAdmin: %s. %s)�osr �join�logger�debug�pwd�getpwnam�KeyError�error�strZpw_uidZpw_gid�isfiler �find� startswith�appendr �split�shutilZcopyfile�chmod�chown�OSError�Errorr �IOError�isdir�dirnamer )�da_hook_filename�command�da_hook_default_dir� hook_fullnameZda_user�eZda_user_uidZda_user_gid�contentZhook_installedZhook_on_bashr r5 ZfnameZold_hook_backupr r r �create_da_hookO sj &$r<