diff --git a/dev_scripts/dev_utils.py b/dev_scripts/dev_utils.py new file mode 100644 index 000000000..1a58e3a5d --- /dev/null +++ b/dev_scripts/dev_utils.py @@ -0,0 +1,14 @@ +import pathlib +import subprocess + + +def git_root(): + """Get the root directory of the Git repo.""" + # FIXME: Use a Git Python binding for this. + # FIXME: Make this work if called outside the repo. + path = ( + subprocess.check_output(["git", "rev-parse", "--show-toplevel"]) + .decode() + .strip("\n") + ) + return pathlib.Path(path) diff --git a/dev_scripts/env.py b/dev_scripts/env.py index 3c8230d1f..db7b6ee6c 100755 --- a/dev_scripts/env.py +++ b/dev_scripts/env.py @@ -11,6 +11,8 @@ import urllib.request from datetime import date +from dev_utils import git_root + DEFAULT_GUI = True DEFAULT_USER = "user" DEFAULT_DRY = False @@ -272,14 +274,6 @@ def run(*args): ).stdout -def git_root(): - """Get the root directory of the Git repo.""" - # FIXME: Use a Git Python binding for this. - # FIXME: Make this work if called outside the repo. - path = run("git", "rev-parse", "--show-toplevel").decode().strip("\n") - return pathlib.Path(path) - - def user_data(): """Get the user data dir in (which differs on different OSes)""" home = pathlib.Path.home() diff --git a/dev_scripts/qa.py b/dev_scripts/qa.py index 07cfbbfdf..43ef8af7d 100755 --- a/dev_scripts/qa.py +++ b/dev_scripts/qa.py @@ -9,6 +9,8 @@ import subprocess import sys +from dev_utils import git_root + logger = logging.getLogger(__name__) CONTENT_QA = r"""## QA @@ -561,18 +563,7 @@ def __init__(self, try_auto=False, skip_manual=False, debug=False): self.debug = debug self.try_auto = try_auto self.skip_manual = skip_manual - self.src = ( - subprocess.run( - [ - "git", - "rev-parse", - "--show-toplevel", - ], - stdout=subprocess.PIPE, - ) - .stdout.decode() - .strip("\n") - ) + self.src = git_root() def task(*msgs, ref=None, auto=False): """Decorator for running a task automatically. diff --git a/install/common/download-tessdata.py b/install/common/download-tessdata.py index f2da96ee1..73aca79a3 100644 --- a/install/common/download-tessdata.py +++ b/install/common/download-tessdata.py @@ -1,13 +1,12 @@ import hashlib import io import json -import pathlib -import re -import subprocess import sys import tarfile import urllib.request +from dev_utils import git_root + TESSDATA_RELEASES_URL = ( "https://api.github.com/repos/tesseract-ocr/tessdata_fast/releases/latest" ) @@ -15,19 +14,6 @@ TESSDATA_CHECKSUM = "d0e3bb6f3b4e75748680524a1d116f2bfb145618f8ceed55b279d15098a530f9" -def git_root(): - """Get the root directory of the Git repo.""" - # FIXME: Use a Git Python binding for this. - # FIXME: Make this work if called outside the repo. - cmd = ["git", "rev-parse", "--show-toplevel"] - path = ( - subprocess.run(cmd, check=True, stdout=subprocess.PIPE) - .stdout.decode() - .strip("\n") - ) - return pathlib.Path(path) - - def main(): share_dir = git_root() / "share" tessdata_dir = share_dir / "tessdata"