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"]) + | 
