mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-28 13:21:25 -07:00
* Revert "Update conventions in azure modules" This reverts commit30a688d8d3
. * Revert "Allow specific __future__ imports in modules" This reverts commit3a2670e0fd
. * Revert "Fix wildcard import in galaxy/token.py" This reverts commit6456891053
. * Revert "Fix one name in module error due to rewritten VariableManager" This reverts commit87a192fe66
. * Revert "Disable pylint check for names existing in modules for test data" This reverts commit6ac683ca19
. * Revert "Allow ini plugin to load file using other encoding than utf8." This reverts commit6a57ad34c0
.
97 lines
2.3 KiB
Python
97 lines
2.3 KiB
Python
"""Wrapper around git command-line tools."""
|
|
|
|
from __future__ import absolute_import, print_function
|
|
|
|
from lib.util import (
|
|
CommonConfig,
|
|
SubprocessError,
|
|
run_command,
|
|
)
|
|
|
|
|
|
class Git(object):
|
|
"""Wrapper around git command-line tools."""
|
|
def __init__(self, args):
|
|
"""
|
|
:type args: CommonConfig
|
|
"""
|
|
self.args = args
|
|
self.git = 'git'
|
|
|
|
def get_diff(self, args):
|
|
"""
|
|
:type args: list[str]
|
|
:rtype: list[str]
|
|
"""
|
|
cmd = ['diff'] + args
|
|
return self.run_git_split(cmd, '\n')
|
|
|
|
def get_diff_names(self, args):
|
|
"""
|
|
:type args: list[str]
|
|
:rtype: list[str]
|
|
"""
|
|
cmd = ['diff', '--name-only', '--no-renames', '-z'] + args
|
|
return self.run_git_split(cmd, '\0')
|
|
|
|
def get_file_names(self, args):
|
|
"""
|
|
:type args: list[str]
|
|
:rtype: list[str]
|
|
"""
|
|
cmd = ['ls-files', '-z'] + args
|
|
return self.run_git_split(cmd, '\0')
|
|
|
|
def get_branches(self):
|
|
"""
|
|
:rtype: list[str]
|
|
"""
|
|
cmd = ['for-each-ref', 'refs/heads/', '--format', '%(refname:strip=2)']
|
|
return self.run_git_split(cmd)
|
|
|
|
def get_branch(self):
|
|
"""
|
|
:rtype: str
|
|
"""
|
|
cmd = ['symbolic-ref', '--short', 'HEAD']
|
|
return self.run_git(cmd).strip()
|
|
|
|
def get_branch_fork_point(self, branch):
|
|
"""
|
|
:type branch: str
|
|
:rtype: str
|
|
"""
|
|
cmd = ['merge-base', '--fork-point', branch]
|
|
return self.run_git(cmd).strip()
|
|
|
|
def is_valid_ref(self, ref):
|
|
"""
|
|
:type ref: str
|
|
:rtype: bool
|
|
"""
|
|
cmd = ['show', ref]
|
|
try:
|
|
self.run_git(cmd)
|
|
return True
|
|
except SubprocessError:
|
|
return False
|
|
|
|
def run_git_split(self, cmd, separator=None):
|
|
"""
|
|
:type cmd: list[str]
|
|
:param separator: str | None
|
|
:rtype: list[str]
|
|
"""
|
|
output = self.run_git(cmd).strip(separator)
|
|
|
|
if not output:
|
|
return []
|
|
|
|
return output.split(separator)
|
|
|
|
def run_git(self, cmd):
|
|
"""
|
|
:type cmd: list[str]
|
|
:rtype: str
|
|
"""
|
|
return run_command(self.args, [self.git] + cmd, capture=True, always=True)[0]
|