3 gt`*0 @ s d dl mZ d dl mZ d dlmZmZ d dlmZ d dlZd dl Zd dl Zd dlZd dlZd dl Zd dlZd dlZd dlZd dlZejjG dd dejjZdS ) )absolute_import)unicode_literals)_logger)OptionParserNc s e Zd ZdgZedZ fddZedd Zdd Z d d Z dd Zd d Zdd Z dd Zdd Zd ddZd!ddZedd Zdd Zdd Z ZS )"DownloadCommandZdownloadz%Download package to current directoryc s t t| j| d | _d | _d S )N)superr __init__optsparser)selfcli) __class__ /usr/lib/python3.6/download.pyr + s zDownloadCommand.__init__c C s | j ddtdd | j ddtdd | j d dtd d | j ddtdd | j d ddg tjdtdd | j ddtdd | j ddtdd | j ddddtdd | j ddddd d!gg td"d# d S )$Npackages+zpackages to download)nargshelpz--source store_truezdownload the src.rpm instead)actionr z--debuginfoz'download the -debuginfo package insteadz --debugsourcez)download the -debugsource package insteadz--archz --archlistarchesz[arch]z5limit the query to packages of given architectures.)destdefaultr metavarr z --resolvez(resolve and download needed dependenciesz --alldepsz^when running with --resolve, download all dependencies (do not exclude already installed ones)z--urlz--urlsurlzJprint list of urls where the rpms can be downloaded instead of downloading)r r r z--urlprotocolsappendhttphttpsZrsyncftpz4when running with --url, limit to specific protocols)r choicesr r )add_argumentr r Z_SplitCallback)r r r r set_argparser0 s* zDownloadCommand.set_argparserc C s | j j}d|_d|_| jjr*| jjr*d|_| jjr>| j j j | jjsN| jj rZ| j j j | jjrr| jj| j j_ntjjtj | j j_d S )NTF)r demandsZsack_activationZavailable_reposr resolveZalldepsZload_system_reposourcebaseZreposZenable_source_repos debuginfodebugsourceZenable_debug_reposdestdirconfdnfi18nucdosgetcwd)r r# r r r configureK s zDownloadCommand.configurec C s | j j r.| j j r.| j j r.| j| j j}nXg }| j jrN|j| j| j j | j jrj|j| j| j j | j jr|j| j | j j | j j rxd|D ]\}|jtj kr|j| j jd}|rt| qtd|j }| jjjrtjj|tj| qW dS | j| dS )zExecute the util action here.)schemesz$Failed to get mirror for package: %sN)r r% r' r( _get_pkg_objs_rpmsr extend_get_pkg_objs_source_get_pkg_objs_debuginfo_get_pkg_objs_debugsourcer repoidhawkeyCMDLINE_REPO_NAMEZremote_locationZurlprotocolsprintr namer&