git hook needs more care...
This commit is contained in:
parent
9a190e9d95
commit
6ea76dca6b
|
@ -1,6 +1,6 @@
|
|||
#! python
|
||||
"""
|
||||
This is an alternative to `git_hooks_post-receive.sh`
|
||||
This is an alternative to `git_hooks_post-receive.sh`.
|
||||
The post commit hook in Gitea would include something like the following to ensure this script is called.
|
||||
|
||||
#!/bin/sh
|
||||
|
@ -10,7 +10,7 @@ python "D:\dev\websites\sandpoints-dev\custom_syadmin\git_hooks_post-receive.py"
|
|||
--website "D:\dev\websites\testing-ground\sandpoints" \
|
||||
--website_preview "D:\dev\websites\testing-ground\sandpoints\_preview" \
|
||||
--library "D:\dev\websites\pirate-care-syllabus\_library" \
|
||||
--tmp_dir "D:\tmp\tmp"
|
||||
--tmp_dir "D:\tmp\tmp" \
|
||||
--oldrev $oldrev \
|
||||
--newrev $newrev \
|
||||
--ref $ref
|
||||
|
@ -32,6 +32,9 @@ import subprocess
|
|||
import shutil
|
||||
import stat
|
||||
from datetime import datetime
|
||||
import logging
|
||||
|
||||
logging.basicConfig(level = logging.DEBUG, filename = "/tmp/git_hooks.log")
|
||||
|
||||
# format for dates
|
||||
date_format = "%m/%d/%Y, %H:%M:%S"
|
||||
|
@ -89,7 +92,7 @@ def rmrf(path, keep_dir=False):
|
|||
def remove_readonly(func, path, excinfo):
|
||||
os.chmod(path, stat.S_IWRITE)
|
||||
func(path)
|
||||
# Try removal
|
||||
# Try removal.
|
||||
if keep_dir and os.path.exists(path) and len(os.path.realpath(path)) > 1:
|
||||
for root, dirs, files in os.walk(path):
|
||||
for f in files:
|
||||
|
@ -129,7 +132,8 @@ def build_site(dest, tmp, branch=None, hugo_environment='gitea'):
|
|||
print("Build destination exists: ", dest)
|
||||
except:
|
||||
print(f"Error creating the directory: {dest}")
|
||||
lcl = f'{tmp}/last-commit-log.txt'
|
||||
lcl = f'{tmp}/last-commit-log.html'
|
||||
clobber(lcl, '<html><head><meta charset="utf-8"></head><body><pre>')
|
||||
# overriding hugo config for development environments
|
||||
env = os.environ.copy()
|
||||
if BASE_URL:
|
||||
|
@ -137,10 +141,11 @@ def build_site(dest, tmp, branch=None, hugo_environment='gitea'):
|
|||
if GIT_URL:
|
||||
env["HUGO_PARAMS_GITURL"] = GIT_URL
|
||||
# run the hugo command
|
||||
hugo_output = cmd([HUGO_PATH, '-e', hugo_environment, '-d', dest], cwd=tmp, env=env)
|
||||
clobber(lcl, hugo_output)
|
||||
hugo_output = cmd([HUGO_PATH, '--templateMetrics', '-e', hugo_environment, '-d', dest], cwd=tmp, env=env)
|
||||
clobber(lcl, hugo_output, append=True)
|
||||
now_time = datetime.now().strftime(date_format)
|
||||
clobber(lcl, f"\n{start_time}\n{now_time}", append=True)
|
||||
clobber(lcl, f"</pre></body></html>", append=True)
|
||||
shutil.move(lcl, dest)
|
||||
|
||||
|
||||
|
@ -149,6 +154,7 @@ parser = argparse.ArgumentParser()
|
|||
for v in vars:
|
||||
parser.add_argument(f"--{v.lower()}")
|
||||
args = parser.parse_args()
|
||||
logging.info(args)
|
||||
|
||||
# Load all variables from command line arguments or environment variables
|
||||
for v in vars:
|
||||
|
@ -186,5 +192,3 @@ build_site(WEBSITE_PREVIEW, TMP_WEBSITE_PREVIEW, branch=PREVIEW_BRANCH, hugo_env
|
|||
# Clean up temp directories
|
||||
rmrf(TMP_WEBSITE)
|
||||
rmrf(TMP_WEBSITE_PREVIEW)
|
||||
|
||||
# @TODO: link the library
|
Loading…
Reference in New Issue