o
    Wi~                     @  s   d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dl
mZ d dl
mZ d d	lmZ d d
lmZ dZe	jZe	jZe	jZdddZejdddZdddZdS )     )annotationsN)	Generator)Sequence)	lang_base)
envcontext)PatchesT)Var)
FatalError)Prefixhs_env
target_dirstrreturnr   c                 C  s$   t j| d}d|t jtdfffS )NbinPATH)ospathjoinpathsepr   )r   bin_path r   P/home/ubuntu/.local/lib/python3.10/site-packages/pre_commit/languages/haskell.pyget_env_patch   s   r   prefixr
   versionGenerator[None]c                 c  sH    t | t|}tt| d V  W d    d S 1 sw   Y  d S )N)r   environment_dirENVIRONMENT_DIRr   r   )r   r   envdirr   r   r   in_env   s
   "r   additional_dependenciesSequence[str]Nonec              	   C  s   t d| t | t|}g | d|}|stdtj|d}tj	|dd t 
| d t 
| dd	d
dd|g|R  d S )Nhaskellz.cabalz0Expected .cabal files or additional_dependenciesr   T)exist_ok)cabalupdater%   installz--install-methodcopyz--installdir)r   assert_version_defaultr   r   starr	   r   r   r   makedirs	setup_cmd)r   r   r    r   pkgsbindirr   r   r   install_environment!   s"   r/   )r   r   r   r   )r   r
   r   r   r   r   )r   r
   r   r   r    r!   r   r"   )
__future__r   
contextlibos.pathr   collections.abcr   r   
pre_commitr   pre_commit.envcontextr   r   r   pre_commit.errorsr	   pre_commit.prefixr
   r   basic_get_default_versionget_default_versionbasic_health_checkhealth_checkbasic_run_hookrun_hookr   contextmanagerr   r/   r   r   r   r   <module>   s&    
