39 lines
1.4 KiB
Python
39 lines
1.4 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
|
|
"""
|
|
|
|
import sys
|
|
import subprocess
|
|
import os
|
|
|
|
if(len(sys.argv) != 4):
|
|
sys.exit("wrong number of args <source repo> <prefix> <cache path>") # 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", "--safe-mode", "server", "-a", "showtitle", "-a", "source-highlighter=rouge", "-a", "rouge-css=style", "-a", "rouge-style=base16.monokai.dark", "--out-file=-", f"--base-dir={repo_name}", "-"])
|