U
e
@ s d dl mZ d dlZd dlZd dlZd dlZd dlZd dl Z d dl
mZ d dl
mZ d dl
mZ d dlmZ d dlmZ d dlmZ d d lmZ d
ZdZejZejZejZdd
dddZejddddddZejddddZ dddddddZ!dS ) )annotationsN) Generator)Sequence) lang_base)
envcontext)PatchesT)Var)PrefixZ dotnetenvbinstrr )venvreturnc C s dt j| tt jtdfffS )NPATH)ospathjoinBIN_DIRpathsepr )r r I/opt/hc_python/lib/python3.8/site-packages/pre_commit/languages/dotnet.py
get_env_patch s r r zGenerator[(None, None, None)])prefixversionr
c c s0 t | t|}tt| d V W 5 Q R X d S )N)r environment_dirENVIRONMENT_DIRr r )r r envdirr r r in_env s r zGenerator[str, None, None])r
c
c sL t :} tj| d}t|d}|d W 5 Q R X |V W 5 Q R X d S )Nznuget.configwzw )tempfileTemporaryDirectoryr r r openwrite)Ztmpdirnuget_configfr r r _nuget_config_no_sources' s
r$ z
Sequence[str]None)r r additional_dependenciesr
c C st t d| t d| t | t|}| d}t | dddddd| f | |}dd t|D }|sxt d
|D ]}t
tj||>}dd |
D \} || }
tjj|
}W 5 Q R X W 5 Q R X td
| j}|st d|d|d d}
|
d krt d|
j}|s2t dt 0}t | dddd|dtj|td||f
W 5 Q R X q|d S )NZdotnetzpre-commit-buildpackz--configurationZReleasez
--propertyzPackageOutputPath=c S s g | ]}| d r|qS )z.nupkgendswith.0xr r r
M s
z'install_environment..z+could not find any build outputs to installc s s | ]}| d r|V qdS )z.nuspecNr( r* r r r T s
z&install_environment..z{.*}z%could not parse namespace from nuspecz.//r idz expected to find an "id" elementz"id" element missing tool nameZtoolinstallz--configfilez--tool-pathz--add-source)r Zassert_version_defaultZassert_no_additional_depsr r r Z setup_cmdr listdirAssertionErrorzipfileZipFiler namelistr xmletreeZElementTreeparserematchZgetroottagfindtextr$ r )r r r&