o nnh@sBdZddlmZddlZddlZddlmZmZGdddZ dS)&Wrapper around git command-line tools.) annotationsN)SubprocessError raw_commandc@seZdZdZd.d/ddZd.d0d dZd1ddZd2ddZd1ddZd2ddZ d3ddZ d4d5ddZ d6d d!Z d7d$d%Z d8d9d*d+Zd:d;d,d-ZdS)<GitrNroott.Optional[str]returnNonecCsd|_||_dS)Ngit)r r)selfrrE/usr/local/lib/python3.10/dist-packages/ansible_test/_internal/git.py__init__s z Git.__init__args list[str] git_optionst.Optional[list[str]]cCs.dg|}|dur ddg}|j||dddS)z/Run `git diff` and return the result as a list.diffNz-czcore.quotePath= replace str_errors run_git_split)r rrcmdrrrget_diffs z Git.get_diffcCsgd|}||dS)z8Return a list of file names from the `git diff` command.)rz --name-onlyz --no-renames-zrr rrrrrget_diff_names  zGit.get_diff_namescCs4gd}||d}dd|D}dd|D}|S)z-Return a list of submodule paths recursively.) submodulestatusz --recursivercSsg|] }td|dqS)z^.[0-9a-f]+ (?P[^ ]+)path)researchgroup).0linerrr $sz+Git.get_submodule_paths..cSsg|] }|ds|qS)z../) startswith)r)r%rrrr+-sr)r routputsubmodule_pathsrrrget_submodule_paths s   zGit.get_submodule_pathscCsddg|}||dS)zrBrr6rrrrr s            r) rK __future__rr&typingtutilrrrrrrrs