1
0
mirror of https://github.com/aquatix/dotfiles.git synced 2025-12-06 21:45:10 +01:00
Files
dotfiles/bin/archive_file

45 lines
945 B
Bash
Executable File

#!/bin/bash
if [ -z "$1" ]; then
echo "No filename to archive provided"
exit 1
elif [ -z "$2" ]; then
echo "No archive directory path provided"
exit 2
fi
FILENAME="${1}"
ARCHIVEDIR="${2}"
if [ ! -z "$3" ]; then
# Alternative archive filename was provided
FILE="${3}"
fi
if [ ! -e $FILENAME ]; then
echo "$FILENAME does not exist, exiting"
exit 3
elif [ ! -e $ARCHIVEDIR ]; then
mkdir -p $ARCHIVEDIR
echo "Created $ARCHIVEDIR"
fi
DATETIME=$(stat -c %Y $FILENAME)
if [ -e "$ARCHIVEDIR/timestamp.txt" ]; then
PREV_DATETIME=$(cat "$ARCHIVEDIR/timestamp.txt")
else
PREV_DATETIME=0
fi
if [ $DATETIME != $PREV_DATETIME ]; then
# Archive the file
if [ -z $FILE ]; then
FILE=$(basename $FILENAME)
fi
TARGETFILE="${ARCHIVEDIR}/${HOSTNAME}_${DATETIME}_${FILE}"
cp -a $FILENAME "${TARGETFILE}"
gzip -9 "${TARGETFILE}"
echo $DATETIME > "$ARCHIVEDIR/timestamp.txt"
fi