38 lines
1.2 KiB
Python
38 lines
1.2 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"
|
|
|
|
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 = "/".join([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)
|
|
subprocess.run(["asciidoctor", "-s", "-a", "showtitle", "--out-file=-", f"--base-dir={repo_name}", "-"])
|
|
|