mirror of
https://github.com/clearlinux/graphene.git
synced 2026-09-06 13:51:28 +00:00
43 lines
867 B
Bash
Executable File
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
|