Skip to content

Commit 1c157d7

Browse files
committed
Prevent overwriting of existing files
1 parent f3502cc commit 1c157d7

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

scripts/tests/upload_rcpsnaps.sh

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,34 @@ if [ ! -d "$DIR_PATH" ]; then
3030
exit 1
3131
fi
3232

33+
EXISTING_REMOTE=$(s3cmd ls "s3://${SPACE_NAME}/${DEST_DIR}/" | awk '{print $4}' | sed 's|.*/||')
34+
35+
# Gather files to be uploaded
36+
FILES_TO_UPLOAD=()
37+
CONFLICTING_FILES=()
38+
3339
for FILE_PATH in "${DIR_PATH}"/*.rpcsnap.json; do
40+
FILE_NAME=$(basename "$FILE_PATH")
41+
DEST_FILENAME="${FILE_NAME}.zst"
42+
43+
if echo "$EXISTING_REMOTE" | grep -qx "$DEST_FILENAME"; then
44+
CONFLICTING_FILES+=("$DEST_FILENAME")
45+
else
46+
FILES_TO_UPLOAD+=("$FILE_PATH")
47+
fi
48+
done
49+
50+
# Abort if any files already exist
51+
if [ ${#CONFLICTING_FILES[@]} -gt 0 ]; then
52+
echo "❌ The following files already exist in DigitalOcean and would be overwritten:"
53+
for f in "${CONFLICTING_FILES[@]}"; do
54+
echo " - $f"
55+
done
56+
echo "Aborting. No files were uploaded."
57+
exit 1
58+
fi
59+
60+
for FILE_PATH in "${FILES_TO_UPLOAD[@]}"; do
3461
FILE_NAME=$(basename "$FILE_PATH")
3562
COMPRESSED_FILE="${FILE_PATH}.zst"
3663
DEST_PATH="${DEST_DIR}/${FILE_NAME}.zst"

0 commit comments

Comments
 (0)