[pacman-dev] [PATCH] makepkg: refactor check_pgpsigs output
Allan McRae
allan at archlinux.org
Mon Sep 5 19:11:00 EDT 2011
On 06/09/11 01:22, Dave Reisner wrote:
> - use our warning() and error() functions
> - use printf instead of echo
> - ensure a newline always follows the result of the check
> - properly error on a revoked key (matching pacman's behavior)
>
> Signed-off-by: Dave Reisner<dreisner at archlinux.org>
> ---
> refactored the whole thing as per allan's suggestion.
Not quite... Now this output is split over two lines and is
inconsistent with the output when we check_checksums (for at least the
"SIGNATURE NOT FOUND" and "SOURCE FILE NOT FOUND" lines. I am fine
with the other lines being split)
Allan
> scripts/makepkg.sh.in | 34 ++++++++++++++++++----------------
> 1 files changed, 18 insertions(+), 16 deletions(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 75d168b..b2295a6 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -704,7 +704,7 @@ check_pgpsigs() {
>
> msg "$(gettext "Verifying source file signatures with %s...")" "gpg"
>
> - local file
> + local file pubkey
> local warning=0
> local errors=0
> local statusfile=$(mktemp)
> @@ -715,40 +715,42 @@ check_pgpsigs() {
> continue
> fi
>
> - echo -n " ${file%.*} ... ">&2
> + printf " %s ... " "${file%.*}">&2
>
> if ! file="$(get_filepath "$file")"; then
> - echo "$(gettext "SIGNATURE NOT FOUND")">&2
> + error "$(gettext "SIGNATURE NOT FOUND")">&2
> errors=1
> continue
> fi
>
> if ! sourcefile="$(get_filepath "${file%.*}")"; then
> - echo "$(gettext "SOURCE FILE NOT FOUND")">&2
> + error "$(gettext "SOURCE FILE NOT FOUND")">&2
> errors=1
> continue
> fi
>
> if ! gpg --quiet --batch --status-file "$statusfile" --verify "$file" "$sourcefile" 2> /dev/null; then
> - if grep "NO_PUBKEY" "$statusfile"> /dev/null; then
> - warning "$(gettext "Unknown public key") $(awk '/NO_PUBKEY/ {print $3}' $statusfile)">&2
> + printf '%s\n' "$(gettext "FAILED")">&2
> + if ! pubkey=$(awk '/NO_PUBKEY/ { print $3; exit 1; }' "$statusfile"); then
> + warning "$(gettext "Unknown public key") $pubkey">&2
> warnings=1
> else
> - echo "$(gettext "FAILED")">&2
> errors=1
> fi
> else
> - if grep "REVKEYSIG" "$statusfile"> /dev/null; then
> - echo "$(gettext "Passed")" "-" "$(gettext "Warning: the key has been revoked.")">&2
> + if grep -q "REVKEYSIG" "$statusfile"; then
> + printf '%s\n' "$(gettext "FAILED")">&2
> + error "$(gettext "the key has been revoked.")">&2
> errors=1
> - elif grep "EXPSIG" "$statusfile"> /dev/null; then
> - echo "$(gettext "Passed")" "-" "$(gettext "Warning: the signature has expired.")">&2
> - warnings=1
> - elif grep "EXPKEYSIG" "$statusfile"> /dev/null; then
> - echo "$(gettext "Passed")" "-" "$(gettext "Warning: the key has expired.")">&2
> - warnings=1
> else
> - echo $(gettext "Passed")>&2
> + printf '%s\n' "$(gettext "Passed")">&2
> + if grep -q "EXPSIG" "$statusfile"; then
> + warning "$(gettext "the signature has expired.")">&2
> + warnings=1
> + elif grep -q "EXPKEYSIG" "$statusfile"; then
> + warning "$(gettext "the key has expired.")">&2
> + warnings=1
> + fi
> fi
> fi
> done
More information about the pacman-dev
mailing list