gitea-asciidoc/clone_for_markdown.py
2023-02-28 17:30:34 +01:00

38 lines
1.1 KiB
Python

#!/usr/bin/env python3
"""
Python script to parse, clone and return a repo for gitea
in order for asciidoctor to be able to access included files
Doesn't overwrite folder if it already exists, will still return that folder name in that case.
Parameters :
in : a relative path as given by GITEA_PREFIX_SRC (https://docs.gitea.io/en-us/config-cheat-sheet/#markup-markup)
return : The name of the folder containing the cloned repo
"""
PATH_PREFIX = "/var/lib/gitea/git/repositories"
CACHE_FOLDER_PATH = "/var/lib/gitea/markdown_cache"
#PATH_PREFIX = ".."
import sys
import subprocess
import os
if(len(sys.argv) != 2):
sys.exit("wrong number of args") # wrong number of args
repo_path = sys.argv[1].split('/',3)
if(len(repo_path)<2):
sys.exit("Wrong path format passed")
repo_name = CACHE_FOLDER_PATH+repo_path[2]
repo_path = "/".join(repo_path[:3])
repo_path = PATH_PREFIX + repo_path
if not os.path.isdir(CACHE_FOLDER_PATH):
os.makedirs(CACHE_FOLDER_PATH)
if not os.path.isdir(repo_name):
subprocess.run(["git", "clone", repo_path, repo_name], check=True, stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
print(repo_name)