U e @sddlmZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl m Z ddl m Z dd lmZdd lmZd Ze jZe jZe jZd d ddZd ddddZejdd ddddZdd dddddZdS)) annotationsN) Generator)Sequence) lang_base) envcontext)PatchesT)Var)Prefix) cmd_outputZlua_envstr)returncCstddd\}}}|S)z'Get the Lua version used in file paths.luarocksconfigz --lua-ver)r strip)_stdoutrF/opt/hc_python/lib/python3.8/site-packages/pre_commit/languages/lua.py_get_lua_versionsrr)dr c Cst}tjdkrdnd}dtj|dtjtdffdtj|dd|d tj|dd|d d ffd tj|d d|d|dfffS)Nwin32ZdllsoPATHbinZLUA_PATHshareluaz?.lua;?z init.lua;;Z LUA_CPATHlibz?.z;;)rsysplatformospathjoinpathsepr)rversionZso_extrrr get_env_patchsr%r zGenerator[(None, None, None)])prefixr$r c cs0t|t|}tt| dVW5QRXdS)N)renvironment_dirENVIRONMENT_DIRrr%)r&r$envdirrrrin_env.sr*z Sequence[str]None)r&r$additional_dependenciesr c Cstd|t|t|}t||btj|dd|dD]}dd|d|f}t||q>|D]}dd|d|f}t||qbW5QRXdS) NrT)exist_okz .rockspecr z--treemakeinstall) rZassert_version_defaultr'r(r*r makedirsstarZ setup_cmd)r&r$r,r)ZrockspecZmake_cmd dependencycmdrrrinstall_environment5s  r4) __future__r contextlibr rtypingrrZ pre_commitrZpre_commit.envcontextrrrZpre_commit.prefixr Zpre_commit.utilr r(Zbasic_get_default_versionZget_default_versionZbasic_health_checkZ health_checkZbasic_run_hookZrun_hookrr%contextmanagerr*r4rrrrs(