1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
#!/bin/bash
NAME=`date '+arbsrc_%Y_%m_%d__%H_%M.tgz'`
dump_revision() {
(./SOURCE_TOOLS/build_info.pl 1>&2) && \
grep ARB_SVN_REVISION ./TEMPLATES/svn_revision.h | \
perl -ne 'if (/ARB_SVN_REVISION\s+\"(.*)\"/) { $_=$1; s/:/_/; print $_; }'
}
REVISION=`dump_revision`
REVISION_DIR=arbsrc_$REVISION
echo REVISION_DIR=$REVISION_DIR
rm_noerr() {
test -f $1 && rm -f $1
}
cleanup() {
# rm_noerr arbsrc.lst
rm_noerr arbsrc.lst.tmp
test -L $REVISION_DIR && rm $REVISION_DIR
true
}
gen_list() {
util/arb_srclst.pl $* > arbsrc.lst.tmp || \
( \
echo "Failed to build arbsrc.lst" ; \
if [ "$*" != "ignore" ] ; then \
echo "To ignore this error save manually using 'make save2' (only works in SVN checkout)"; \
fi; \
false \
)
}
sort_list() {
sort < arbsrc.lst.tmp | perl -pne "s/^\./.\/$REVISION_DIR/g;" > arbsrc.lst
}
gen_tarball() {
ln -s . $REVISION_DIR && \
tar -zcf $NAME --files-from=arbsrc.lst && \
( rm -f arbsrc.tgz ; \
ln -s $NAME arbsrc.tgz ; \
true )
}
save() {
gen_list $* && sort_list && gen_tarball
}
(save $* && cleanup && (ls -alG -rt arbsrc*;true)) || \
(cleanup;echo "Failed to create source tarball";false)
|