3
g                 @   sh   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 d dl	m
Z
mZ G dd deZdd	 ZdS )
    N)List)
AppCommand)color_style)_make_writeablesignalcommandc                   s>   e Zd ZU dZg Zee 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.Tc                sN   t  j| |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__ r/var/www/tester-filtro-web/env/lib/python3.6/site-packages/django_extensions/management/commands/create_command.pyr      s    
zCommand.add_argumentsc             K   s   |}t d|jf| 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_checksr   strZcan_import_settingsr   r   r   __classcell__r   r   )r   r   r      s
   
r   c             K   sV  ddl }t }t|ddd }t|ddd }|d d	|d
   }}|d }	|d }
tjj|jd d| }xtj|D ]\}}}|t|d d }|rtjj	tjj|| r|	stj
tjj|| x$t|D ]\}}|jdr||= qW xX|D ]N}|jds|jdrqtjj||}tjj|||jd|jd}tjj	|rtjj|||jd}tjj	|r|
dkrt|d|  q|
dkrt|d|  t|dL}|j }|jd|}|jd|}|	st|d}|j| W dQ R X W dQ R X |	sytj|| t| W q tk
rH   tjjd|  Y qX qW qxW dS )z=Copy the specified template directory to the copy_to locationr   NERRORc             S   s   | S )Nr   )xr   r   r   <lambda>1   s    zcopy_template.<locals>.<lambda>SUCCESSc             S   s   | S )Nr   )r$   r   r   r   r%   2   s    r	   z	%sCommandr   dry_run	verbosityconf   ..pyc.pyo	.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.
)r,   r-   )r.   r/   )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   r2   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    


r   )r4   rG   rD   typingr   Zdjango.core.management.baser   Zdjango.core.management.colorr   Z"django_extensions.management.utilsr   r   r   r   r   r   r   r   <module>   s   