Files
graphene/Scripts/pack_binaries.sh
2016-02-14 22:16:31 -05:00

43 lines
867 B
Bash
Executable File

#!/bin/bash
hash_method=sha384
mkdir -p .packed
file=$1
shift
dir=.packed
packfile=$dir/${file}.tar.gz
hash="$(echo $(for f in $@; do echo $f; done | sort))"
src=$(for f in $@; do
prev_f=
while [ "$f" != "$prev_f" ]; do
for ext in c cpp S; do
[ ! -f ${f}.${ext} ] || echo ${f}.${ext}
done
prev_f=$f
f=${f%.*}
done
done | sort)
git rev-parse --show-toplevel 1>/dev/null 2>/dev/null || not_in_git=1
hashfile=$dir/${file}.${hash_method}
[ "$src" == "" ] || hash="$hash $(cat ${src} | ${hash_method}sum | awk '{ print $1 }')"
if [ -f $hashfile ] && [ "$FORCE_PACK" != "1" ]; then
if [ "$(cat $hashfile)" = "$hash" ]; then
echo "Packed files are up-to-date, no need to repack the file."
exit 0
fi
fi
echo -n $hash > $hashfile
[ "$not_in_git" = "1" ] || git add $hashfile
tar -chzvvf $packfile $@
[ "$not_in_git" = "1" ] || git add $packfile