diff --git a/cook.sh b/cook.sh index 9a20c173aea9b21da5616a3cacca441207e5ac93..7fb8c9deabda6c474b3aafb4ff43694301f26a38 100755 --- a/cook.sh +++ b/cook.sh @@ -101,6 +101,14 @@ function op { fi popd > /dev/null ;; + gitversion) + if [ -d build/.git ] + then + echo "$(op $1 version)-$(git -C build rev-parse --short HEAD)" + else + op $1 version + fi + ;; update) pushd build > /dev/null skip="0" diff --git a/update-all.sh b/update-all.sh new file mode 100755 index 0000000000000000000000000000000000000000..18a41e85c2acb1556bccc56d1c211d39ab59b00e --- /dev/null +++ b/update-all.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +set -e + +for recipe in `ls -1 recipes` +do + if [ ! -f "recipes/$recipe/stage.tar" ] + then + echo "$recipe: building..." + ./cook.sh $recipe dist + else + oldver=$(./cook.sh $recipe gitversion) + ./cook.sh $recipe update + newver=$(./cook.sh $recipe gitversion) + if [ "$oldver" = "$newver" ] + then + echo "$recipe: up to date (version $newver)." + else + echo "$recipe: updating $oldver -> $newver..." + ./cook.sh $recipe dist + fi + fi +done