10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-06-24 14:12:16 +02:00
quantum_package/scripts/archive_ezfio.sh
2014-09-02 16:22:00 +02:00

79 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
#
# Computes the MD5 digest of an EZFIO file, and creates a tar.
# Thu Apr 3 16:55:50 CEST 2014
if [[ -z ${QPACKAGE_ROOT} ]]
then
print "The QPACKAGE_ROOT environment variable is not set."
print "Please reload the quantum_package.rc file."
fi
function archive()
{
FILE="$1"
MD5="$2"
ARCHIVE="${QPACKAGE_ROOT}/data/cache/$MD5"
if [[ -f "$ARCHIVE" ]]
then
if ! diff "$FILE" "${QPACKAGE_ROOT}/data/cache/$MD5" &> /dev/null
then
echo "Something went wrong. The file"
echo "${QPACKAGE_ROOT}/data/cache/$MD5"
echo "is different from $FILE"
echo "Aborting"
return 1
fi
else
cp "$FILE" "${QPACKAGE_ROOT}/data/cache/$MD5"
fi
}
EZFIO_FILE=$(basename ${1})
if [[ -z ${EZFIO_FILE} ]]
then
echo "Usage: $(basename $0) <EZFIO_FILE>"
exit 1
fi
cd "${QPACKAGE_ROOT}/EZFIO/src"
FILES=($(python << EOF | sort
from read_config import *
for group in groups:
if group == "ezfio":
continue
for d in groups[group]:
if d[2] == ():
suffix = ""
else:
suffix = ".gz"
print group+'/'+d[0]+suffix
print "ezfio/creation"
print "ezfio/library"
EOF
))
cd $OLDPWD
MD5_FILE=$(basename "${EZFIO_FILE}" .ezfio).md5
rm -f -- "${MD5_FILE}"
for FILE in ${FILES[@]}
do
FILE="${EZFIO_FILE}/${FILE}"
MD5=$(md5sum "${FILE}" 2>/dev/null | cut -d ' ' -f 1)
if [[ ! -z $MD5 ]]
then
if ! archive "$FILE" "$MD5"
then
rm -- "${MD5_FILE}"
exit 1
fi
echo "$MD5" "$FILE" >> "${MD5_FILE}"
fi
done