#!/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) " 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