Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/freebsd/poudriere.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Drewery <bryan@shatow.net>2014-04-17 02:19:31 +0400
committerBryan Drewery <bryan@shatow.net>2014-04-17 02:19:31 +0400
commita39bbbff6788d611054201ce4df5f6b6a830d0bc (patch)
tree52ca7e007b1a47cbd9545b450ee3009e34f34361
parent6c31a6da64c233e3c004f55b187249ced003be17 (diff)
leftovers: Fix modified dirs/files not showing all mtree output
MFH
-rwxr-xr-xsrc/share/poudriere/common.sh71
1 files changed, 44 insertions, 27 deletions
diff --git a/src/share/poudriere/common.sh b/src/share/poudriere/common.sh
index cd4aff99..0a6075af 100755
--- a/src/share/poudriere/common.sh
+++ b/src/share/poudriere/common.sh
@@ -1310,34 +1310,51 @@ check_leftovers() {
-e -L -p /
fi
} | while read l ; do
- case ${l} in
- *extra)
- if [ -d ${mnt}/${l% *} ]; then
- find ${mnt}/${l% *} -exec echo "+ {}" \;
- else
- echo "+ ${mnt}/${l% *}"
- fi
- ;;
- *missing)
- l=${l#./}
- echo "- ${mnt}/${l% *}"
- ;;
- *changed)
- read extra
- echo "M ${mnt}/${l% *} ${extra}"
- ;;
- extra:*)
- if [ -d ${mnt}/${l#* } ]; then
- find ${mnt}/${l#* } -exec echo "+ {}" \;
- else
- echo "+ ${mnt}/${l#* }"
+ local changed read_again
+
+ changed=
+ while :; do
+ read_again=0
+ case ${l} in
+ *extra)
+ if [ -d ${mnt}/${l% *} ]; then
+ find ${mnt}/${l% *} -exec echo "+ {}" \;
+ else
+ echo "+ ${mnt}/${l% *}"
+ fi
+ ;;
+ *missing)
+ l=${l#./}
+ echo "- ${mnt}/${l% *}"
+ ;;
+ *changed)
+ changed="M ${mnt}/${l% *}"
+ read_again=1
+ ;;
+ extra:*)
+ if [ -d ${mnt}/${l#* } ]; then
+ find ${mnt}/${l#* } -exec echo "+ {}" \;
+ else
+ echo "+ ${mnt}/${l#* }"
+ fi
+ ;;
+ *:*)
+ changed="M ${mnt}/${l%:*}"
+ read_again=1
+ ;;
+ *)
+ changed="${changed} ${l}"
+ read_again=1
+ ;;
+ esac
+ if [ ${read_again} -eq 1 ]; then
+ # Need to read again to find all changes
+ read l || break
+ continue
fi
- ;;
- *:*)
- read extra
- echo "M ${mnt}/${l%:*} ${extra}"
- ;;
- esac
+ [ -n "${changed}" ] && echo "${changed}"
+ break
+ done
done
}