o
    nc                     @   sX   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZdd Z	G dd deZ
dS )    N)BaseCommandc                 C   s6   t d urt dk st dkrdd l}d|  }||t S )Nr      z4%s option value needs to be within the range 0 to 1.)valueargparseArgumentTypeError)stringr   msg r	   e/var/www/html/kck/venv/lib/python3.10/site-packages/mod_wsgi/server/management/commands/runmodwsgi.pycheck_percentage   s
   
r   c                   @   s>   e Zd ZdZdZeedrejej	j Zndd Z
dd ZdS )	Command z"Starts Apache/mod_wsgi web server.option_listc                 C   s  t g d}ttd}tjjD ]u}|j|j }i }|jD ]_}||vr]t	||r]|dkr<t
|||v r;|t
|| ||< n!|dkrOt
||dkrNt
||||< nt
||d ur]t
||||< |ddkrq|jjdkrq|d= t|d< |d	d
kr{|d	= q|j|i | qd S )N)constcallbackcallback_argscallback_kwargs)intr   typedefault)NODEFAULTactionr   r   nargsr   )setr   strmod_wsgiserverr   _short_opts
_long_optsATTRShasattrgetattrgetr   __name__r   add_argument)selfparserignoretypesoptionoptskwargsattrr	   r	   r
   add_arguments"   s4   

zCommand.add_argumentsc                    sZ  | j d ddlm} |j}|d}d|d d }|d }d|d< ||d< |g}|d	d u r^t|d
r>|j	|d	< n t
jd }|dd }	tj|	 }
t
jt
j|
j}||d	< |dpdg }zIt|dd }|d u rvt|dg }d|vr|jr|jdr|jr|s|d|jdpd|jf n|dt|d |jdpd|jf W n	 ty   Y nw ||d< tjd||}|d rd S t
j|d d}|t|d }tj  r#|d s#d   fdd}t  t j!| t  t j"| t  t j#| t  t j$| t  t j%| t&j'|ddgt
j(d  )  d S t
*||dd d S )NzSuccessfully ran command.r   )settings.moduleapplication_typecallable_objectworking_directoryBASE_DIRDJANGO_SETTINGS_MODULEurl_aliases
MIDDLEWAREMIDDLEWARE_CLASSESz*whitenoise.middleware.WhiteNoiseMiddleware/zstart-server
setup_onlyserver_root	apachectlprocess_name
debug_modec                    s8    d u rt d d S | tjfvrt j|  d S d S )Nr   )sysexitsignalSIGWINCHoskillpid)signumframeprocessr	   r
   handler   s
   zCommand.handle.<locals>.handlerstartz-DFOREGROUND)
preexec_fn)+stdoutwritedjango.confr/   WSGI_APPLICATIONsplitjoinr#   r!   r6   rE   environrA   modulespathdirname__file__
setdefaultr"   
STATIC_URL
startswithSTATIC_ROOTinsertrstripr   AttributeErrorr   r   _cmd_setup_serverljustlenisattyrC   SIGINTSIGTERMSIGHUPSIGUSR1rD   
subprocessPopensetpgrpwaitexecl)r&   argsoptionsr/   wsgi_applicationfieldsmodule_namer4   settings_module_pathroot_module_pathroot_moduleparentr8   
middleware
executablenamerL   r	   rJ   r
   handleA   sv   



zCommand.handleN)r$   
__module____qualname__rn   helpr!   r   r   r   r   r.   rz   r	   r	   r	   r
   r      s    
r   )rE   rA   inspectrC   ri   django.core.management.baser   mod_wsgi.serverr   r   r   r	   r	   r	   r
   <module>   s    