diff --git a/backup_github/main.py b/backup_github/main.py index 2d41935..2c9be29 100644 --- a/backup_github/main.py +++ b/backup_github/main.py @@ -10,6 +10,7 @@ backup_time, git_size, meta_size, + rate_limit_count, registry, success, ) @@ -24,7 +25,8 @@ def main(): parsed_args = None try: parsed_args = parse_args(sys.argv[1:]) - + success.labels(parsed_args.organization).set(0) + rate_limit_count.labels(parsed_args.organization).set(0) backup = Backup( parsed_args.token, parsed_args.organization, @@ -51,7 +53,7 @@ def main(): logging.error(e) success.labels(parsed_args.organization).set(0) finally: - sizes = count_sizes(parsed_args.output_dir) + sizes = count_sizes(parsed_args.output_dir, parsed_args.organization) git_size.labels(parsed_args.organization).set(sizes["git"]) meta_size.labels(parsed_args.organization).set(sizes["meta"]) backup_time.labels(parsed_args.organization).set(int(time())) diff --git a/backup_github/utils.py b/backup_github/utils.py index 5348581..a310e0b 100644 --- a/backup_github/utils.py +++ b/backup_github/utils.py @@ -38,14 +38,16 @@ def filter_save(struct, fields, path): save_json(path, backup) -def count_sizes(output_dir): +def count_sizes(output_dir, organization): git = 0 - repo_dir = f"{output_dir}/repos" + repo_dir = f"{output_dir}/{organization}/repos" + if len(list(os.walk(repo_dir))) == 0: + return {"git": 0, "meta": 0} repos = list(os.walk(repo_dir))[0][1] for repository in repos: git += sum( p.stat().st_size for p in Path(f"{repo_dir}/{repository}/content").rglob("*") ) - meta = sum(p.stat().st_size for p in Path(output_dir).rglob("*")) - git + meta = sum(p.stat().st_size for p in Path(repo_dir).rglob("*")) - git return {"git": git, "meta": meta}