3
^t                 @   s`   d dl mZ d dlmZ d dlmZ d dlZd dlZd dlm	Z	 d dl
mZ G dd deZdS )	    )convert_path)log)DistutilsOptionErrorN)six)Commandc               @   s:   e Zd ZdZdZdddgZg Zdd Zdd Zdd Z	dS )rotatezDelete older distributionsz2delete older distributions, keeping N newest filesmatch=mpatterns to match (required)	dist-dir=d%directory where the distributions arekeep=k(number of matching distributions to keepc             C   s   d | _ d | _d | _d S )N)matchdist_dirkeep)self r   ?/tmp/pip-build-ao6tmhm0/setuptools/setuptools/command/rotate.pyinitialize_options   s    zrotate.initialize_optionsc             C   s   | j d krtd| jd kr$tdyt| j| _W n tk
rP   tdY nX t| j tjrxdd | j jdD | _ | j	dd	 d S )
NzQMust specify one or more (comma-separated) match patterns (e.g. '.zip' or '.egg')z$Must specify number of files to keepz--keep must be an integerc             S   s   g | ]}t |j qS r   )r   strip).0pr   r   r   
<listcomp>+   s    z+rotate.finalize_options.<locals>.<listcomp>,bdistr   )r   r   )
r   r   r   int
ValueError
isinstancer   string_typessplitset_undefined_options)r   r   r   r   finalize_options   s    

zrotate.finalize_optionsc             C   s   | j d ddlm} x| jD ]}| jj d | }|tjj| j|}dd |D }|j	  |j
  tjdt|| || jd  }xD|D ]<\}}tjd| | jstjj|rtj| qtj| qW qW d S )	Negg_infor   )glob*c             S   s   g | ]}t jj||fqS r   )ospathgetmtime)r   fr   r   r   r   6   s    zrotate.run.<locals>.<listcomp>z%d file(s) matching %szDeleting %s)run_commandr&   r   distributionget_namer(   r)   joinr   sortreverser   infolenr   dry_runisdirshutilrmtreeunlink)r   r&   patternfilestr+   r   r   r   run/   s     
z
rotate.runN)r   r	   r
   )r   r   r   )r   r   r   )
__name__
__module____qualname____doc__descriptionuser_optionsboolean_optionsr   r$   r<   r   r   r   r   r      s   r   )distutils.utilr   	distutilsr   Zdistutils.errorsr   r(   r6   Zsetuptools.externr   
setuptoolsr   r   r   r   r   r   <module>   s   