[pacman-dev] [PATCH] Files that contain references to srcdir and pkgdir are listed
Allan McRae
allan at archlinux.org
Sun Jun 12 05:04:52 UTC 2016
On 26/05/16 07:21, Ashley Whetter wrote:
> Fixes FS#31558
>
> Signed-off-by: Ashley Whetter <ashley at awhetter.co.uk>
> ---
> .../libmakepkg/lint_package/build_references.sh.in | 22 ++++++++++++++++++----
> 1 file changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/scripts/libmakepkg/lint_package/build_references.sh.in b/scripts/libmakepkg/lint_package/build_references.sh.in
> index 67c14e6..dd6b88c 100644
> --- a/scripts/libmakepkg/lint_package/build_references.sh.in
> +++ b/scripts/libmakepkg/lint_package/build_references.sh.in
> @@ -29,10 +29,24 @@ 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"
> + warn_single_build_references "$srcdir" srcdir
> + warn_single_build_references "$pkgdirbase" pkgdir
> +}
> +
> +warn_single_build_references() {
> + local to_find=$1 ref_name=$2
> +
> + mapfile -t refs < <(cd "$pkgdir" && find_files_that_ref "$to_find")
> + if (( ${#refs[*]} )); then
> + warning "$(gettext "Package contains reference to %s")" "\$$ref_name"
> + printf " %s\n" "${refs[@]}"
> fi
> - if find "${pkgdir}" -type f -print0 | xargs -0 grep -q -I "${pkgdirbase}" ; then
> - warning "$(gettext "Package contains reference to %s")" "\$pkgdir"
> +}
> +
> +find_files_that_ref() {
Why make this a separate function for one line?
> + if [[ -z "$1" ]]; then
> + return 1
> fi
> +
> + find -type f -exec grep -Il "$1" {} +
> }
>
I don't think a separte "warn_single_build_references" function is
needed either. We can loop! What about (totally untested...)
warn_build_references() {
for v in "srcdir" "pkgdir"; do
mapfile -t refs < <(cd "$pkgdir" && find -type f -exec grep -Il
"${!v}" {} +
if (( ${#refs[*]} )); then
warning "$(gettext "Package contains reference to %s")" "\$$v"
printf " %s\n" "${refs[@]}"
...
More information about the pacman-dev
mailing list