ROOTPLOIT
Server: LiteSpeed
System: Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: niphet (1079)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/dnf-plugins/__pycache__/download.cpython-36.pyc
3

gt`*0@sddlmZddlmZddlmZmZddlmZddlZddl	Zddl
ZddlZddlZddl
ZddlZddlZddlZddlZejjGdddejjZdS))absolute_import)unicode_literals)_logger)OptionParserNcseZdZdgZedZfddZeddZddZ	d	d
Z
ddZd
dZddZ
ddZddZd ddZd!ddZeddZddZddZZS)"DownloadCommandZdownloadz%Download package to current directorycs tt|j|d|_d|_dS)N)superr__init__optsparser)selfcli)	__class__/usr/lib/python3.6/download.pyr	+szDownloadCommand.__init__c	Cs|jddtdd|jddtdd|jd	dtd
d|jddtdd|jd
ddgtjdtdd|jddtdd|jddtdd|jddddtdd|jddddd d!ggtd"d#dS)$Npackages+zpackages to download)nargshelpz--source
store_truezdownload the src.rpm instead)actionrz--debuginfoz'download the -debuginfo package insteadz
--debugsourcez)download the -debugsource package insteadz--archz
--archlistarchesz[arch]z5limit  the  query to packages of given architectures.)destdefaultrmetavarrz	--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)rrrz--urlprotocolsappendhttphttpsZrsyncftpz4when running with --url, limit to specific protocols)rchoicesrr)add_argumentrrZ_SplitCallback)rrrr
set_argparser0s*
zDownloadCommand.set_argparsercCs|jj}d|_d|_|jjr*|jjr*d|_|jjr>|j	j
j|jjsN|jj
rZ|j	j
j|jjrr|jj|j	j_ntjjtj|j	j_dS)NTF)r
demandsZsack_activationZavailable_reposr
resolveZalldepsZload_system_reposourcebaseZreposZenable_source_repos	debuginfodebugsourceZenable_debug_reposdestdirconfdnfi18nucdosgetcwd)rr#rrr	configureKszDownloadCommand.configurecCs|jjr.|jjr.|jjr.|j|jj}nXg}|jjrN|j|j|jj|jjrj|j|j|jj|jjr|j|j	|jj|jj
rxd|D]\}|jtj
kr|j|jjd}|rt|qtd|j}|jjjrtjj|tj|qWdS|j|dS)zExecute the util action here.)schemesz$Failed to get mirror for package: %sN)r
r%r'r(_get_pkg_objs_rpmsrextend_get_pkg_objs_source_get_pkg_objs_debuginfo_get_pkg_objs_debugsourcerrepoidhawkeyCMDLINE_REPO_NAMEZremote_locationZurlprotocolsprintrnamer&r*strictr+
exceptionsErrorrZwarning
_do_downloads)rpkgspkgrmsgrrrrun^s.





zDownloadCommand.runcCsi}x"|D]}|jt|gj|q
Wg}g}xP|jD]D}dd|D}|r`|j|dq:|jddd|j|dq:W|r|jj||jjj|rx^|D]V}|j	}t
jj|jj
jt
jj|}	t
jj|	rt
jj||	rqtj||jj
jqWtdd||D}
|
S)z=
        Perform the download for a list of packages
        cSsg|]}|jtjkr|qSr)r7r8r9).0rArrr
<listcomp>sz1DownloadCommand._do_downloads.<locals>.<listcomp>rcSs|jj|jjfS)N)ZrepoZpriorityZcost)xrrr<lambda>sz/DownloadCommand._do_downloads.<locals>.<lambda>)keycSsg|]}|jqSr)localPkg)rDrArrrrEs)
setdefaultstrrvaluessortr&Zdownload_packagesoutputprogressrIr.pathjoinr*r)basenameexistssamefileshutilcopysorted)rr@Zpkg_dictrAZto_downloadZcmdlineZpkg_listZpkgs_cmdlinesrcdstZ	locationsrrrr?s.

zDownloadCommand._do_downloadscCs"|jjr|j|}n
|j|}|S)zc
        Return a list of dnf.Package objects that represent the rpms
        to download.
        )r
r$_get_packages_with_deps
_get_packages)r	pkg_specsr@rrrr2s
z"DownloadCommand._get_pkg_objs_rpmscCs*|j|}|j|}t|j|dd}|S)zj
        Return a list of dnf.Package objects that represent the source
        rpms to download.
        T)r%)r2_get_source_packagessetr[)rr\r@source_pkgsrrrr4s

z$DownloadCommand._get_pkg_objs_sourcec	Cst}|jjjj}xh|j|D]Z}xT|j|jgD]D}|j|t	|j
|j|j|j
d}|s^q4x|D]}|j|qdWPq4Wq"W|S)zm
        Return a list of dnf.Package objects that represent the debuginfo
        rpms to download.
        )r;epochversionreleasearch)r^r&sackquery	availabler[Z
debug_nameZsource_debug_namefilterintr`rarbrcadd)rr\dbg_pkgsqrAZdbg_name
dbg_availableprrrr5s 


z'DownloadCommand._get_pkg_objs_debuginfocCsht}|jjjj}xL|j|D]>}|j|jt|j	|j
|j|jd}x|D]}|j
|qNWq"W|S)zo
        Return a list of dnf.Package objects that represent the debugsource
        rpms to download.
        )r;r`rarbrc)r^r&rdrerfr[rgZdebugsource_namerhr`rarbrcri)rr\rjrkrArlrmrrrr6s

z)DownloadCommand._get_pkg_objs_debugsourceFcCs|r
|jn|j}g}x||D]t}y|j||Wqtjjk
r}z<tjtjj	||j
jjr|tjt
dtjj|WYdd}~XqXqWttj|}|S)z Get packages matching pkg_specs.zExiting due to strict setting.N)_get_query_source
_get_queryrr+r=PackageNotFoundErrorrerrorr,r-r&r*r<rr>list	itertoolschain)rr\r%funcZqueriespkg_specer@rrrr[s

"zDownloadCommand._get_packagesc	Cs|j|}t|}x|D]}tj|jj}|j||j}|r^|j|j	|j|j
qtdg}tj
dj|dd|Dtj
tjj|jtjjqW|S)z-Get packages matching pkg_specs and the deps.zError in resolve of packages:z
    cSsg|]}t|qSr)rK)rDrArrrrEsz;DownloadCommand._get_packages_with_deps.<locals>.<listcomp>)r[r^r8ZGoalr&rdZinstallrCupdateZ
list_installsZ
list_upgradesrrrqrQr+utilZ_format_resolve_problemsZ
problem_rulesr=r>)	rr\r%r@Zpkg_setrAZgoalZrcrBrrrrZs



z'DownloadCommand._get_packages_with_depscCszt}xj|D]b}|jr8|j|jtjdt||jq|jdkrZ|jd|j|jfqtj	t
dt|qWt|S)z4Get list of source rpm names for a list of packages.z  --> Package : %s Source : %srXz
%s-%s.src.rpmzNo source rpm defined for %s)r^Z	sourcerpmrirdebugrKrcr;Zevrinforrr)r@r_rArrrr]s

z$DownloadCommand._get_source_packagescCstjjj|d}|o|dk}|s8|jdrdtjj|rd|jj|g|jj	j
d}|jjjj
|dStjj|}|j|jj|jjd	}|j}|j
d
d}|jjr|j|jjd}t|jdkrtd
|}tjj||S)z#Return a query to match a pkg_spec.rrrfilerz.rpm)rO)rA)Zwith_srcT)Zlatest_per_arch_by_priority)rczNo package %s available.)rrr|r)r+ZpycompZurlparseendswithr.rPisfiler&Zadd_remote_rpmsrNrOrdreZfiltermsubjectSubjectZget_best_queryr
r%rfrrglenrCrr=rp)rrvr1Zis_urlr@subjrkrBrrrroszDownloadCommand._get_querycCsd|dd}tjj|}x.|jD]"}|j|jjj}|r"|jSq"Wt	d|}tj
j|dS)z/Return a query to match a source rpm file name.NzNo package %s available.)r+rrZget_nevra_possibilitiesZto_queryr&rdrfZlatestrr=rp)rrvrZ	nevra_objZ	tmp_queryrBrrrrn,sz!DownloadCommand._get_query_source)F)F)__name__
__module____qualname__aliasesrZsummaryr	staticmethodr"r0rCr?r2r4r5r6r[rZr]rorn
__classcell__rr)rrr%s #!


r)Z
__future__rrZdnfpluginscorerrZdnf.cli.option_parserrr+Zdnf.cliZdnf.exceptionsZdnf.i18nZdnf.subjectZdnf.utilr8rsr.rUZpluginZregister_commandr
ZCommandrrrrr<module>s