X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-verify-tag.sh;h=36f171b3028a3460c1c51f9c1f5747a9a0d2d850;hb=7612a1efdb0c0806b43db10ce784707aae874340;hp=156c75bb3e4fb0c46ed9bff67b3fb48d795b41fb;hpb=c1067050ce58b5b39f528fe634732da858664603;p=git.git diff --git a/git-verify-tag.sh b/git-verify-tag.sh index 156c75bb..36f171b3 100755 --- a/git-verify-tag.sh +++ b/git-verify-tag.sh @@ -1,8 +1,42 @@ #!/bin/sh -. git-sh-setup || die "Not a git archive" -tag=$(git-rev-parse $1) || exit 1 +USAGE='' +SUBDIRECTORY_OK='Yes' +. git-sh-setup + +verbose= +while case $# in 0) break;; esac +do + case "$1" in + -v|--v|--ve|--ver|--verb|--verbo|--verbos|--verbose) + verbose=t ;; + *) + break ;; + esac + shift +done + +if [ "$#" != "1" ] +then + usage +fi + +type="$(git-cat-file -t "$1" 2>/dev/null)" || + die "$1: no such object." + +test "$type" = tag || + die "$1: cannot verify a non-tag object of type $type." + +case "$verbose" in +t) + git-cat-file -p "$1" | + sed -n -e '/^-----BEGIN PGP SIGNATURE-----/q' -e p + ;; +esac + +git-cat-file tag "$1" >"$GIT_DIR/.tmp-vtag" || exit 1 +cat "$GIT_DIR/.tmp-vtag" | +sed '/-----BEGIN PGP/Q' | +gpg --verify "$GIT_DIR/.tmp-vtag" - || exit 1 +rm -f "$GIT_DIR/.tmp-vtag" -git-cat-file tag $tag > .tmp-vtag || exit 1 -cat .tmp-vtag | sed '/-----BEGIN PGP/Q' | gpg --verify .tmp-vtag - || exit 1 -rm -f .tmp-vtag