We're not very strict about this, but please try to keep the first line of the commit message fairly short, ideally around 50 characters. On 10/14/16 at 08:21pm, ivy.foster@gmail.com wrote:
From: Ivy Foster <ivy.foster@gmail.com>
grep -n output is used to match format of compiler warnings. Since rewriting build_references() anyway, tweaked quoting. Implements FS#31558.
Signed-off-by: Ivy Foster <ivy.foster@gmail.com> --- scripts/libmakepkg/lint_package/build_references.sh.in | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/scripts/libmakepkg/lint_package/build_references.sh.in b/scripts/libmakepkg/lint_package/build_references.sh.in index 67c14e6..62f705c 100644 --- a/scripts/libmakepkg/lint_package/build_references.sh.in +++ b/scripts/libmakepkg/lint_package/build_references.sh.in @@ -25,14 +25,16 @@ LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
source "$LIBRARY/util/message.sh"
- lint_package_functions+=('warn_build_references')
warn_build_references() { - if find "${pkgdir}" -type f -print0 | xargs -0 grep -q -I "${srcdir}" ; then - warning "$(gettext "Package contains reference to %s")" "\$srcdir" - fi - if find "${pkgdir}" -type f -print0 | xargs -0 grep -q -I "${pkgdirbase}" ; then - warning "$(gettext "Package contains reference to %s")" "\$pkgdir" - fi + local refs + + for var in srcdir pkgdir; do + mapfile -t refs < <(find "$pkgdir" -type f -exec grep -n "${!var}" {} +)
For packages with just a single file this won't print the name of the matching file. GNU grep has -H for this, but it's not POSIX. What about including /dev/null as an argument to grep so that it always has more than one file? Also, unrelated to this patch, but we should be using grep -F since paths can contain regular expression metacharacters.
+ if [[ ${#refs} -gt 0 ]]; then + warning "$(gettext 'Package contains reference to %s')" "\$$var" + printf '%s\n' "${refs[@]}" >&2 + fi + done } -- 2.10.0