41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
import re
|
|
from .util import ExecShell
|
|
|
|
|
|
def installed():
|
|
sh_str = "git --version"
|
|
out, error = ExecShell(sh_str)
|
|
if re.search(r"git\s+version\s+(\d+\.){1,4}\d+", out):
|
|
return True
|
|
return False
|
|
|
|
|
|
def version_1_5_3() -> bool:
|
|
sh_str = "git --version"
|
|
out, error = ExecShell(sh_str)
|
|
res = re.search(r"git\s+version\s+(?P<v>(\d+\.){1,4}\d+)", out)
|
|
if not res:
|
|
return False
|
|
ver = [int(i) for i in res.group('v').split(".")]
|
|
if len(ver) < 3:
|
|
ver.extend([0] * (3 - len(ver)))
|
|
if ver[0] > 1:
|
|
return True
|
|
elif ver[0] == 1 and ver[1] > 5:
|
|
return True
|
|
elif ver[0] == 1 and ver[1] == 5 and ver[3] >= 3:
|
|
return True
|
|
return False
|
|
|
|
|
|
def install_git():
|
|
check_str = "Git installed successfully"
|
|
if not installed():
|
|
script_path = "/www/server/panel/mod/base/git_tool/install.sh"
|
|
out, error = ExecShell("bash {}".format(script_path))
|
|
if out.find(check_str) != -1:
|
|
return True
|
|
else:
|
|
return False
|
|
return True
|