#!/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 """ import sys import subprocess import os if(len(sys.argv) != 4): sys.exit("wrong number of args ") # wrong number of args # Prefix for the path where repository are saved, can be an url PATH_PREFIX = sys.argv[2] # Prefix for where we will clone the repos CACHE_FOLDER_PATH = sys.argv[3] 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", "-a", "source-highlighter=rouge", "-a", "rouge-css=style", "-a", "rouge-style=base16.monokai.dark", "--out-file=-", f"--base-dir={repo_name}", "-"])