diff --git a/config.json.dist b/config.json.dist index f0b61ee..1654b87 100644 --- a/config.json.dist +++ b/config.json.dist @@ -1,4 +1,8 @@ { "token": "ghp_the-random-sequence-of-characters-in-your-token", "organization": "organization_name" + "exclude_repositories": [ + "repository_name", + "other_repository_name" + ] } \ No newline at end of file diff --git a/gource_org.py b/gource_org.py index fadb506..c05ca64 100644 --- a/gource_org.py +++ b/gource_org.py @@ -22,8 +22,13 @@ def list_repositories(organization_name: str) -> list: def clone_repos(repositories: list, dst: Path = Path("./")) -> None: dst.mkdir(exist_ok=True, parents=True) for repository in repositories: - print(f"Cloning {repository['name']}") - Repo.clone_from(repository["clone_url"], dst / repository["name"]) + if repository["name"] in config["exclude_repositories"]: + print(f"Skipping {repository['name']} because it is in exclude_repositories") + elif (dst / repository["name"]).is_dir(): + print(f"Skipping {repository['name']} because it already exists") + else: + print(f"Cloning {repository['name']}") + Repo.clone_from(repository["clone_url"], dst / repository["name"]) def create_gource_logs(repos_dir: Path, dst: Path = Path("./.logs")) -> None: @@ -31,8 +36,11 @@ def create_gource_logs(repos_dir: Path, dst: Path = Path("./.logs")) -> None: raise Exception(f"Invalid repos_dir {repos_dir}. Must be a directory.") dst.mkdir(exist_ok=True, parents=True) for repo_dir in repos_dir.iterdir(): - print(f"Creating log for {repo_dir.name}") - os.system(f"gource {repo_dir} --output-custom-log {dst / repo_dir.name}.log") + if repo_dir.name in config["exclude_repositories"]: + print(f"Skipping {repo_dir.name} because it is in exclude_repositories") + else: + print(f"Creating log for {repo_dir.name}") + os.system(f"gource {repo_dir} --output-custom-log {dst / repo_dir.name}.log") def combine_gource_logs(logs_dir: Path, dst: Path = Path("./gource.log")) -> None: