repo-add: try symlink, then hardlink, then copy for DB file
We were seeing some issues when trying to create our new database alias using symlinks on certain filesystems (see FS#19907). Have a fallback method in place where we first try a symlink, then a hard link, then just copy the database if all else fails. Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
6f4f9c1b66
commit
21d5dedfdd
|
@ -487,7 +487,10 @@ if (( success )); then
|
|||
|
||||
[[ -f $REPO_DB_FILE ]] && mv -f "$REPO_DB_FILE" "${REPO_DB_FILE}.old"
|
||||
[[ -f $tmpdir/$filename ]] && mv "$tmpdir/$filename" "$REPO_DB_FILE"
|
||||
ln -sf "$REPO_DB_FILE" "${REPO_DB_FILE%.tar.*}"
|
||||
dblink="${REPO_DB_FILE%.tar.*}"
|
||||
ln -sf "$REPO_DB_FILE" "$dblink" 2>/dev/null || \
|
||||
ln -f "$REPO_DB_FILE" "$dblink" 2>/dev/null || \
|
||||
cp "$REPO_DB_FILE" "$dblink"
|
||||
else
|
||||
msg "$(gettext "No packages modified, nothing to do.")"
|
||||
exit 1
|
||||
|
|
Loading…
Reference in New Issue