distgit: Actually hardlink over the existing source at the old path
Without this, the file could exist at both the old and new path, taking the space on the disk twice. This forces a hardlink if the file already existed at the old path.
This commit is contained in:
parent
1de198612a
commit
c166eadb79
1 changed files with 13 additions and 1 deletions
|
@ -179,14 +179,26 @@ def main():
|
|||
# Add the file to the old path, where fedpkg is currently looking for it
|
||||
if hash_type == "md5":
|
||||
old_dir = os.path.join(module_dir, filename, checksum)
|
||||
old_path = os.path.join(old_dir, filename)
|
||||
|
||||
try:
|
||||
os.makedirs(old_dir)
|
||||
os.link(dest_file, os.path.join(old_dir, filename))
|
||||
|
||||
except OSError as e:
|
||||
if e.errno != errno.EEXIST:
|
||||
raise e
|
||||
|
||||
try:
|
||||
os.link(dest_file, old_path)
|
||||
|
||||
except OSError as e:
|
||||
if e.errno != errno.EEXIST:
|
||||
raise e
|
||||
|
||||
# The file already existed at the old path, hardlink over it
|
||||
os.unlink(old_path)
|
||||
os.link(old_path)
|
||||
|
||||
# Emit a fedmsg message. Load the config to talk to the fedmsg-relay.
|
||||
try:
|
||||
config = fedmsg.config.load_config([], None)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue