#!/bin/bash # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ### # Prepares an RC of the Solr Ref Guide by doing local file operations to: # - create a directory for the RC files # - move the PDF files into the RC directory with the appropriate name # - generate a SHA1 of the PDF file # - GPG sign the PDF files # # See: https://cwiki.apache.org/confluence/display/solr/Internal+-+How+To+Publish+This+Documentation if [ $# -lt 2 ] || [ 3 -lt $# ] ; then echo "Usage: $0 [gpg-pubkey-id]" echo "" echo "Examples: " echo " $0 solr-123456-7890-6543.pdf 4.5-RC0" echo "or $0 solr-123456-7890-6543.pdf 4.5-RC0 DEADBEEF" echo "" echo "If no GPG key ID is specified, GPG will use your default key" exit 1; fi sha_sum() { if hash sha1sum 2>/dev/null; then sha1sum "$@" elif hash shasum 2>/dev/null; then shasum "$@" else echo "Can't find sha1sum or shasum, aborting" exit 1; fi } SRC_FILE=$1 VER_RC=$2 GPG_ID_ARG="" if [ ! -z "$3" ] ; then GPG_ID_ARG="-u $3" fi VER_RC_PARTS=( ${VER_RC//-/ } ) if [ 2 -ne ${#VER_RC_PARTS[@]} ] ; then echo "! ! ! Can't proceed, Version+RC suffix must have one '-' (ie: X.Y-RCZ) : $VER_RC" exit 1; fi VER=${VER_RC_PARTS[0]} VER_PARTS=( ${VER//./ } ) if [ 2 -ne ${#VER_PARTS[@]} ] ; then echo "! ! ! Can't proceed, Version must have one '.' (ie: X.Y) : $VER" exit 1; fi PREFIX="apache-solr-ref-guide" DIR="$PREFIX-$VER_RC" PDF="$PREFIX-$VER.pdf" SHA="$PDF.sha1" GPG="$PDF.asc" if [ ! -e $SRC_FILE ] ; then echo "! ! ! Can't proceed, file does not exist: $SRC_FILE" exit 1; fi if [ -d $DIR ] ; then echo "! ! ! Can't proceed, directory already exists: $DIR" exit 1; fi # from here on, use set -x to echo progress and rely on decent error messages # from shell commands that might fail. set -x mkdir $DIR || exit 1 mv $SRC_FILE $DIR/$PDF || exit 1 cd $DIR || exit 1 sha_sum $PDF > $SHA || exit 1 gpg $GPG_ID_ARG --armor --output $GPG --detach-sig $PDF|| exit 1