diff options
Diffstat (limited to 'mirror.py')
-rw-r--r-- | mirror.py | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -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"]) + |