|
6 | 6 | import subprocess |
7 | 7 | import threading |
8 | 8 | import shlex |
| 9 | +import hashlib |
| 10 | +import time |
9 | 11 | from pygit2 import clone_repository, GIT_RESET_HARD, Repository |
10 | 12 | from shutil import copyfile |
11 | 13 |
|
@@ -48,6 +50,7 @@ def check_presence(target_dir, value): |
48 | 50 | os.path.join(target_dir, "sha1", value), |
49 | 51 | os.path.join(target_dir, "sha256", value), |
50 | 52 | os.path.join(target_dir, "sha512", value), |
| 53 | + # TODO: glob this |
51 | 54 | os.path.join(target_dir, "by-name", value) |
52 | 55 | ] |
53 | 56 | return [ path for path in paths if os.path.exists(path) ] |
@@ -83,7 +86,10 @@ def mirror_file(target_dir, path, name, revision): |
83 | 86 | if not os.path.exists(os.path.join(sha512_dir, sha512_32)): |
84 | 87 | os.symlink(os.path.relpath(main_file, start=sha512_dir), os.path.join(sha512_dir, sha512_32)) |
85 | 88 |
|
86 | | - by_name_dir = os.path.join(target_dir, "by-name") |
| 89 | + # do something semi random to avoid collisions |
| 90 | + name_prefix = "{}_{}".format(revision, int(time.time())) |
| 91 | + by_name_dir = os.path.join(target_dir, "by-name", name_prefix) |
| 92 | + os.makedirs(by_name_dir, exist_ok=True) |
87 | 93 | if not os.path.exists(os.path.join(by_name_dir, name)): |
88 | 94 | os.symlink(os.path.relpath(main_file, start=by_name_dir), os.path.join(by_name_dir, name)) |
89 | 95 |
|
|
0 commit comments