Mercurial > vanilla
changeset 1025:21a87230c8a1
vanilla: update bulk.sh
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 29 Aug 2019 20:33:00 +0200 |
parents | 2ef5d78d7712 |
children | 3dfef64b81c1 |
files | Scripts/bulk.sh |
diffstat | 1 files changed, 47 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/Scripts/bulk.sh Thu Aug 29 21:00:00 2019 +0200 +++ b/Scripts/bulk.sh Thu Aug 29 20:33:00 2019 +0200 @@ -17,29 +17,37 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # -alias basename="busybox basename" -alias dirname="busybox dirname" -alias echo="busybox echo" -alias find="busybox find" -alias grep="busybox grep" -alias realpath="busybox realpath" +for applet in $(busybox --list); do + alias $applet="busybox $applet" +done TOP=$(realpath $(dirname $0)/../) PROGNAME=$(basename $0) +TMPDIR=/tmp/vanilla-bulk -rm -f /tmp/fail.* - +# Options. force=0 missing=0 # +# clean +# +# Remove temporary files. +# +clean() +{ + rm -f $TMPDIR/list +} + +# # build # -# Build a package if not already installed. +# Build a package if not installed unless `force' (-f) has been given. Then +# force its reinstallation. # build() {( - name=$(basename $1) + local name=$(basename $1) if [ $force -eq 1 ] || ! vpk info $name > /dev/null 2>&1; then # TODO: dependencies here. @@ -47,11 +55,12 @@ cd $TOP/$pkg - if vpk build > /tmp/fail.$name 2>&1; then + if vpk build > $TMPDIR/fail.$name 2>&1; then + # TODO: make vpk add able to reinstall package. rm -f /var/lib/vpk/$name - rm -f /tmp/fail.$name + rm -f $TMPDIR/fail.$name echo "ok" - yes | vpk install -t none /tmp/vpk/$name*pkg.txz + vpk add -qt none /tmp/vpk/$name*pkg.txz else echo "failed" return 1 @@ -66,16 +75,16 @@ # build_missing() { - name=$(basename $1) - rebuild=0 + local name=$(basename $1) + local rebuild=0 # Build if not installed at all. if ! vpk info $name > /dev/null 2>&1; then rebuild=1 else - version=$(vpk info -m version $name 2> /dev/null) - revision=$(vpk info -m revision $name 2> /dev/null) - filename="$name#$version-$revision-pkg.txz" + local version=$(vpk info -m version $name 2> /dev/null) + local revision=$(vpk info -m revision $name 2> /dev/null) + local filename="$name#$version-$revision-pkg.txz" if [ ! -f /tmp/vpk/$filename ]; then rebuild=1 @@ -110,10 +119,30 @@ shift $((OPTIND - 1)) +trap "clean; exit 1" INT QUIT TERM +rm -rf $TMPDIR +mkdir -p $TMPDIR + +$TOP/Scripts/list.sh > $TMPDIR/list + +if [ ! -s $TMPDIR/list ]; then + echo "abort: no packages to build" 1>&2 + exit 1 +fi + +total=$(wc -l $TMPDIR/list | awk '{ print $1 }') +current=1 + $TOP/Scripts/list.sh "$@" | while read -r pkg; do + echo -n "($current/$total) " + if [ $missing -eq 1 ]; then build_missing $pkg else build $pkg fi + + current=$((current + 1)) done + +clean