#!/usr/bin/env python
import os
+import subprocess
-dirs = [d for d in os.listdir() if not d.startswith('.')]
+def check(args, input=None):
+ return subprocess.check_output(args, text=True, input=input).strip()
+
+
+# config repo and branch
+REPO = "/srv/git/git-hooks"
+BRANCH = "main"
+
+os.chdir(REPO)
+
+dirs = check(["git", "ls-tree", "--name-only", BRANCH]).splitlines()
for d in dirs:
- files = os.listdir(d)
+ files = check(["git", "ls-tree", "--name-only", f"{BRANCH}:{d}"]).splitlines()
for f in files:
- print(f'cp {d}/{f} /srv/git/{d}/hooks/{f}')
+ file = check(["git", "--no-pager", "show", f"{BRANCH}:{d}/{f}"])
+ with open(f"/srv/git/{d}/hooks/{f}", "w") as fd:
+ fd.write(file)