mirror of
https://github.com/PDP-10/its.git
synced 2026-01-11 23:53:12 +00:00
Updated deploy-ftp with retry flow
This commit is contained in:
parent
5bc1f3195c
commit
ec672e1566
@ -1,12 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
HOST="hactrn.kostersitz.com"
|
||||
USER="if0_35726802@hactrn.kostersitz.com"
|
||||
DIR="/images"
|
||||
TESTDIR="test"
|
||||
NETRC="$HOME/.netrc"
|
||||
RETRY_LIMIT=5
|
||||
retry_count=0
|
||||
|
||||
if test -z "$FTP_SECRET"; then
|
||||
echo 'ERROR: No password in $FTP_SECRET.'
|
||||
@ -18,11 +18,12 @@ echo "login $USER" >> "$NETRC"
|
||||
echo "password $FTP_SECRET" >> "$NETRC"
|
||||
chmod 600 "$NETRC"
|
||||
|
||||
(cd out; tar czf $EMULATOR.tgz $EMULATOR)
|
||||
upload_file(){
|
||||
(cd out; tar czf $EMULATOR.tgz $EMULATOR)
|
||||
|
||||
echo "Deploying as $USER at $HOST"
|
||||
echo "Deploying as $USER at $HOST"
|
||||
|
||||
ftp "$HOST" <<EOF
|
||||
ftp "$HOST" <<EOF
|
||||
passive on
|
||||
type image
|
||||
cd $DIR
|
||||
@ -30,49 +31,64 @@ lcd out
|
||||
put $EMULATOR.tgz
|
||||
bye
|
||||
EOF
|
||||
}
|
||||
|
||||
# test the upload and see if it expands correctly
|
||||
echo "Testing download of $EMULATOR.tgz"
|
||||
mkdir -p "$TESTDIR"
|
||||
cd "$TESTDIR"
|
||||
test_archive_integrity(){
|
||||
echo "Testing download of $EMULATOR.tgz"
|
||||
mkdir -p "$TESTDIR"
|
||||
cd "$TESTDIR"
|
||||
|
||||
curl "http://$HOST/$DIR/$EMULATOR.tgz" -o "$EMULATOR.tgz"
|
||||
curl "http://$HOST/$DIR/$EMULATOR.tgz" -o "$EMULATOR.tgz"
|
||||
|
||||
if [ ! -f "$EMULATOR.tgz" ]; then
|
||||
echo "File $EMULATOR.tgz not found!"
|
||||
exit 1
|
||||
else
|
||||
echo "Testing archive $EMULATOR.tgz"
|
||||
tar -xzf "$EMULATOR.tgz"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Unpacking successful!"
|
||||
if [ ! -f "$EMULATOR.tgz" ]; then
|
||||
echo "File $EMULATOR.tgz not found!"
|
||||
cd ..
|
||||
rm -rf "$TESTDIR"
|
||||
return 1
|
||||
else
|
||||
echo "Error unpacking $EMULATOR.tgz: $(tar -xzf "$EMULATOR.tgz" 2>&1)"
|
||||
exit 1
|
||||
echo "Testing archive $EMULATOR.tgz"
|
||||
if tar -xzf "$EMULATOR.tgz"; then
|
||||
echo "Unpacking successful!"
|
||||
else
|
||||
echo "Error unpacking $EMULATOR.tgz: $(tar -xzf "$EMULATOR.tgz" 2>&1)"
|
||||
cd ..
|
||||
rm -rf "$TESTDIR"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Testing archive integrity"
|
||||
# Define the paths to the folders
|
||||
BUILDDIR="../$EMULATOR"
|
||||
DLDIR="./$EMULATOR"
|
||||
echo "Testing archive integrity"
|
||||
BUILDDIR="../$EMULATOR"
|
||||
DLDIR="./$EMULATOR"
|
||||
|
||||
# Generate MD5 hashes for files in FOLDER1 (with relative filenames)
|
||||
find "$BUILDDIR" -type f -exec md5sum {} + | sed "s|$BUILDDIR/||" > "$BUILDDIR_hashes.txt"
|
||||
find "$BUILDDIR" -type f -exec md5sum {} + | sed "s|$BUILDDIR/||" > "$BUILDDIR_hashes.txt"
|
||||
find "$DLDIR" -type f -exec md5sum {} + | sed "s|$DLDIR/||" > "$DLDIR_hashes.txt"
|
||||
|
||||
# Generate MD5 hashes for files in FOLDER2 (with relative filenames)
|
||||
find "$DLDIR" -type f -exec md5sum {} + | sed "s|$DLDIR/||" > "$DLDIR_hashes.txt"
|
||||
if cmp -s "$BUILDDIR_hashes.txt" "$DLDIR_hashes.txt"; then
|
||||
echo "The contents of $BUILDDIR and $DLDIR are binary identical."
|
||||
cd ..
|
||||
rm -rf "$TESTDIR"
|
||||
return 0
|
||||
else
|
||||
echo "Differences found between $BUILDDIR and $DLDIR:"
|
||||
diff -u "$BUILDDIR_hashes.txt" "$DLDIR_hashes.txt"
|
||||
cd ..
|
||||
rm -rf "$TESTDIR"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Compare the hash files
|
||||
if cmp -s "$BUILDDIR_hashes.txt" "$DLDIR_hashes.txt"; then
|
||||
echo "The contents of $BUILDDIR and $DLDIR are binary identical."
|
||||
else
|
||||
echo "Differences found between $BUILDDIR and $DLDIR:"
|
||||
diff -u "$BUILDDIR_hashes.txt" "$DLDIR_hashes.txt"
|
||||
fi
|
||||
|
||||
# Clean up temporary files
|
||||
cd ..
|
||||
rm -r "$TESTDIR"
|
||||
while [ $retry_count -lt $RETRY_LIMIT ]; do
|
||||
upload_file
|
||||
if test_archive_integrity; then
|
||||
echo "File integrity verified successfully."
|
||||
exit 0
|
||||
else
|
||||
echo "File integrity verification failed, retrying... ($((retry_count+1))/$RETRY_LIMIT)"
|
||||
retry_count=$((retry_count+1))
|
||||
fi
|
||||
done
|
||||
|
||||
exit 0
|
||||
echo "Reached maximum retry limit, exiting with failure."
|
||||
exit 1
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit 20fa16ec1ce720eeaa8d8e52eeaee7f0d498df94
|
||||
Subproject commit 48186c90c49b3711090720fb38f3f88010ef576b
|
||||
@ -1 +1 @@
|
||||
Subproject commit cb5e561508237612e22b5b430bf966f40929adb3
|
||||
Subproject commit e45a330754fe4e34c4907d7fc9aa00304113880e
|
||||
1
tools/tv11.old
Submodule
1
tools/tv11.old
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit e45a330754fe4e34c4907d7fc9aa00304113880e
|
||||
Loading…
x
Reference in New Issue
Block a user