a
    ܌xd                     @   s\   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	 G dd deZ
dd ZdS )	    N)
AppCommand)color_style)_make_writeablesignalcommandc                       s4   e Zd ZdZdZdZ fddZedd Z  Z	S )CommandzfCreates a Django management command directory structure for the given app name in the app's directory.FTc                    sN   t  | |jddddddd |jdd	dd
ddd |jddddd d S )Nz--namez-nstorecommand_namesamplez*The name to use for the management command)actiondestdefaulthelpz--basez-bbase_commandZBasezdThe base class used for implementation of this command. Should be one of Base, App, Label, or NoArgsz	--dry-run
store_trueFz Do not actually create any files)r
   r   r   )superadd_argumentsadd_argument)selfparser	__class__ l/var/www/html/Ranjet/env/lib/python3.9/site-packages/django_extensions/management/commands/create_command.pyr      s    zCommand.add_argumentsc                 K   s   |}t d|jfi | d S )NZcommand_template)copy_templatepath)r   argsoptionsZappr   r   r   handle_app_config%   s    zCommand.handle_app_config)
__name__
__module____qualname__r   Zrequires_system_checksZcan_import_settingsr   r   r   __classcell__r   r   r   r   r      s   r   c                 K   sn  ddl }t }t|ddd }t|ddd }|d d	|d
   }}|d }	|d }
tj|jd d| }t|D ]\}}}|t|d d }|rtj	tj||s|	st
tj|| t|D ]\}}|dr||= q|D ]x}|ds|dr
qtj||}tj|||d|d}tj	|rtj|||d}tj	|r|
dkrt|d|  q|
dkrt|d|  t|dl}| }|d|}|d|}|	st|d}|| W d   n1 s0    Y  W d   n1 s0    Y  |	szt|| t| W q tyd   tjd|  Y q0 qqtdS )z=Copy the specified template directory to the copy_to locationr   NERRORc                 S   s   | S Nr   xr   r   r   <lambda>0       zcopy_template.<locals>.<lambda>SUCCESSc                 S   s   | S r#   r   r$   r   r   r   r&   1   r'   r   z	%sCommandr   dry_run	verbosityconf   .)z.pycz.pyo)z	.DS_Store__pycache__r	   z.tmplz%s already existsz%srz{{ command_name }}z{{ base_command }}wzlNotice: Couldn't set permission bits on %s. You're probably using an uncommon filesystem setup. No problem.
)django_extensionsr   getattrosr   join__path__walklenexistsmkdir	enumerate
startswithendswithreplacerstripprintopenreadwriteshutilcopymoder   OSErrorsysstderr)Ztemplate_nameZcopy_tor   r1   styler"   r(   r   r   r)   r*   Ztemplate_dirdsubdirsfilesZrelative_dirisubdirfZpath_oldZpath_newZfp_origdataZfp_newr   r   r   r   +   sT    


Jr   )r3   rF   rC   Zdjango.core.management.baser   Zdjango.core.management.colorr   Z"django_extensions.management.utilsr   r   r   r   r   r   r   r   <module>   s   