summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/build.sh16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/build.sh b/src/build.sh
index 29a6398..8297f25 100644
--- a/src/build.sh
+++ b/src/build.sh
@@ -12,9 +12,10 @@ get_buildfiles () {
git rev-parse --git-dir &&
git pull ||
git clone $BUILDFILES_GIT .
- } > $(${VERBOSE}&&echo "/dev/stdout" || echo "/dev/null") 2>&1 && {
+ } > $(${VERBOSE} && echo "/dev/stdout" || echo "/dev/null") 2>&1 && {
${QUIET} || printf "${GREEN}${CHECKMARK}\n"
}
+ cd -
}
get_deps () {
@@ -24,12 +25,17 @@ get_deps () {
}
build_order () {
+ checked=""
while [ "$#" != "0" ]; do
name=$1
shift
for dep in $(get_deps $name); do
- set -- $@ $dep
- echo $name $dep
+ [ -z "${checked##*$name*}" ] && {
+ checked="$checked $name"
+ set -- $@ $dep
+ echo $name $dep
+ ${VERBOSE} && echo "checking $name" 1>&2
+ }
done
done | tsort | reverse_lines
}
@@ -79,7 +85,9 @@ build () {
set --
for p in $pkgs; do
- needs_build $p && set -- $@ $p
+ needs_build $p || [ -z ${mentioned##*$p*} ] && {
+ set -- $@ $p
+ }
done
printf "${LIGHT_BLUE}The following packages will be built: \n"