github.com/rsampaio/docker@v0.7.2-0.20150827203920-fdc73cc3fc31/hack/make/sign-repos (about)

     1  #!/bin/bash
     2  
     3  # This script signs the deliverables from release-deb and release-rpm
     4  # with a designated GPG key.
     5  
     6  : ${DOCKER_RELEASE_DIR:=$DEST}
     7  APTDIR=$DOCKER_RELEASE_DIR/apt/repo
     8  YUMDIR=$DOCKER_RELEASE_DIR/yum/repo
     9  
    10  if [ -z "$GPG_PASSPHRASE" ]; then
    11  	echo >&2 'you need to set GPG_PASSPHRASE in order to sign artifacts'
    12  	exit 1
    13  fi
    14  
    15  if [ ! -d $APTDIR ] && [ ! -d $YUMDIR ]; then
    16  	echo >&2 'release-rpm or release-deb must be run before sign-repos'
    17  	exit 1
    18  fi
    19  
    20  sign_packages(){
    21  	# sign apt repo metadata
    22  	if [ -d $APTDIR ]; then
    23  		# create file with public key
    24  		gpg --armor --export releasedocker > "$DOCKER_RELEASE_DIR/apt/gpg"
    25  
    26  		# sign the repo metadata
    27  		for F in $(find $APTDIR -name Release); do
    28  			if test "$F" -nt "$F.gpg" ; then
    29  				gpg -u releasedocker --passphrase "$GPG_PASSPHRASE" \
    30  					--armor --sign --detach-sign \
    31  					--batch --yes \
    32  					--output "$F.gpg" "$F"
    33  			fi
    34  		done
    35  	fi
    36  
    37  	# sign yum repo metadata
    38  	if [ -d $YUMDIR ]; then
    39  		# create file with public key
    40  		gpg --armor --export releasedocker > "$DOCKER_RELEASE_DIR/yum/gpg"
    41  
    42  		# sign the repo metadata
    43  		for F in $(find $YUMDIR -name repomd.xml); do
    44  			if test "$F" -nt "$F.asc" ; then
    45  				gpg -u releasedocker --passphrase "$GPG_PASSPHRASE" \
    46  					--armor --sign --detach-sign \
    47  					--batch --yes \
    48  					--output "$F.asc" "$F"
    49  			fi
    50  		done
    51  	fi
    52  }
    53  
    54  sign_packages