aboutsummaryrefslogtreecommitdiff
path: root/mirror.py
diff options
context:
space:
mode:
Diffstat (limited to 'mirror.py')
-rw-r--r--mirror.py21
1 files changed, 14 insertions, 7 deletions
diff --git a/mirror.py b/mirror.py
index 0ffff6c..14051e2 100644
--- a/mirror.py
+++ b/mirror.py
@@ -1,20 +1,27 @@
import toml
import pathlib
import os
+import subprocess
__here__ = pathlib.Path(__file__).parent
-with open(__here__ / "mirrors.toml", "r") as f:
+with open("mirrors.toml", "r") as f:
repositories = toml.load(f)
for path in repositories.keys():
- pathlib.mkdir(path, exist_ok=True)
local_path = pathlib.Path(path)
+ local_path.mkdir(exist_ok=True, parents=True)
primary_url = repositories[path]["primary"]
secondary_urls = repositories[path]["secondary"]
- if os.path.isfile(local_path / "git-daemon-export-ok"):
- subprocess.run(["git", "remote", "update", primary_url])
- else:
- # TODO: clone repository
- pass
+ os.chdir(str(local_path))
+ if not pathlib.Path("git-daemon-export-ok").is_file():
+ subprocess.run(["git", "init", "--bare"])
+ subprocess.run(["git", "remote", "add", "origin", primary_url])
+ pathlib.Path("git-daemon-export-ok").touch()
+ subprocess.run(["git", "remote", "update"])
+ subprocess.run(["git", "fetch", "origin", "'*:*'"])
+ for url in secondary_urls:
+ print(url)
+ subprocess.run(["git", "push", url, "--all"])
+