ó
æ0ÌRc           @   sÉ   d  Z  d d l Z d d l Z d d l Z d d l Z d d l m Z m Z d d l m	 Z	 d d l
 m Z m Z d d l m Z d d l Z d „  Z d „  Z e d	 k rÅ e j e e j ƒ ƒ n  d S(
   s"   clone a repo and set it up for gbpiÿÿÿÿN(   t   GbpOptionParsert   GbpOptionGroup(   t   DebianGitRepository(   t   GitRepositoryt   GitRepositoryError(   t   GbpErrorc         C   sœ  y/ t  d t j j |  d ƒ d d d d ƒ } Wn' t j k
 rX } t j j | ƒ d% SXt
 | d d ƒ } | j | ƒ | j d	 d
 d d d d t d d ƒ| j d d d d ƒ | j d d d d ƒ | j d d d d ƒ | j d d
 d d d d d d d ƒ| j d d d
 d d d d t d d ƒ| j d d  d d  d! d" ƒ | j d d# d d$ ƒ | j |  ƒ \ } } t j j | j | j | j ƒ | | f S(&   Nt   commandi    t   prefixt    t   usages6   %prog [options] repository - clone a remote repositorys   branch optionss"   branch tracking and layout optionss   --allt   actiont
   store_truet   destt   allt   defaultt   helps0   track all branches, not only debian and upstreamt   option_names   upstream-brancht   upstream_branchs   debian-brancht   debian_branchs   pristine-tart   pristine_tars   --deptht   storet   depths/   git history depth (for creating shallow clones)s   -vs	   --verboset   verboses   verbose command executiont   colort   typet   tristates   color-schemet   color_scheme(   NN(   R    t   ost   patht   basenamet   ConfigParsert   ParsingErrort   gbpt   logt   errt   NoneR   t   add_option_groupt
   add_optiont   Falset   add_config_file_optiont   add_boolean_config_file_optiont
   parse_argst   setupR   R   R   (   t   argvt   parserR"   t   branch_groupt   optionst   args(    (    s5   /usr/lib/python2.7/dist-packages/gbp/scripts/clone.pyR)       s.    "!c         C   s‰  d } t  |  ƒ \ } } | s" d St | ƒ d k  rH t j j d ƒ d S| d } t | ƒ d k  rv t j j t f n | d t	 f \ } } y" t
 | ƒ t j j d ƒ d SWn t k
 rÁ n XyVt j | | | j d | ƒ} t j | j ƒ t  |  ƒ \ } } | j rr| j ƒ  } xê | D]J }	 |	 j d d	 d ƒ }
 | j |
 ƒ r!|
 d
 k r!| j |
 |	 ƒ q!q!Wn• | j | j g } | j r | | j g 7} n  t j j d | ƒ xP | D]H } d | }	 | j |	 d t ƒr»| j | ƒ r»| j | |	 ƒ q»q»W| j | j ƒ Wnj t k
 rG} t j j d | ƒ d } n> t k
 r„} t | j ƒ  ƒ r{t j j | ƒ n  d } n X| S(   Ni    i   i   s   Need a repository to clone.i   s"   Can't run inside a git repository.t	   auto_names   origin/R   t   HEADs   Will track branches: %ss	   origin/%st   remotes   Git command failed: %s(   R)   t   lenR    R!   R"   R   R   t   curdirt   TrueR&   R   R   R   t   cloneR   t   chdirR   t   get_remote_branchest   replacet
   has_brancht   create_branchR   R   R   t   pristine_tar_brancht   debugt
   set_branchR   t   __str__(   R+   t   retvalR.   R/   t   sourcet   clone_toR0   t   repot   remotesR2   t   localt   branchest   branchR"   (    (    s5   /usr/lib/python2.7/dist-packages/gbp/scripts/clone.pyt   main?   sZ    
:
			
	
t   __main__(   t   __doc__R   t   sysR   t   os.patht
   gbp.configR    R   t   gbp.deb.gitR   t   gbp.gitR   R   t
   gbp.errorsR   t   gbp.logR    R)   RH   t   __name__t   exitR+   (    (    (    s5   /usr/lib/python2.7/dist-packages/gbp/scripts/clone.pyt   <module>   s   		=