seL4/.aurelio/mirror.py
2026-07-11 18:59:44 +01:00

52 lines
1.5 KiB
Python
Executable file

#!/usr/bin/env python3
import os
import subprocess
import sys
def run_cmd(cmd):
print(f"Running: {cmd}")
result = subprocess.run(cmd, shell=True)
if result.returncode != 0:
print(f"Command failed with exit code {result.returncode}")
return result.returncode
def main():
repo_name = os.environ.get("GITHUB_REPOSITORY", "")
if "/" in repo_name:
repo_name = repo_name.split("/")[-1]
if not repo_name:
repo_name = os.path.basename(os.getcwd())
github_token = os.environ.get("GITHUB_TOKEN")
gitlab_token = os.environ.get("GITLAB_TOKEN")
codeberg_token = os.environ.get("CODEBERG_TOKEN")
failures = 0
if github_token:
url = f"https://oauth2:{github_token}@github.com/portugalfuturista/{repo_name}.git"
print("Pushing to GitHub...")
if run_cmd(f"git push --mirror {url}") != 0:
failures += 1
if gitlab_token:
url = f"https://oauth2:{gitlab_token}@gitlab.com/portugalfuturista/{repo_name}.git"
print("Pushing to GitLab...")
if run_cmd(f"git push --mirror {url}") != 0:
failures += 1
if codeberg_token:
url = f"https://{codeberg_token}@codeberg.org/portugalfuturista/{repo_name}.git"
print("Pushing to Codeberg...")
if run_cmd(f"git push --mirror {url}") != 0:
failures += 1
if failures > 0:
print(f"Completed with {failures} failures.")
sys.exit(1)
else:
print("Mirroring completed successfully.")
if __name__ == "__main__":
main()