#!/bin/bash # script to create libnl release. # Steps: # - create new commit, bumping version number # - run this script # - check all is good # - tag the commit (signed) # git tag -m 'libnl-3.2.26-rc1' -s libnl3_2_26rc1 HEAD # - publish the tarballs # - push the commit to github # - publish the tag on github # - publish the tarballs on github # - send ANN email die() { printf '%s\n' "$@" exit 1 } set -x set -e cd "$(dirname "$0")/.." git_dir="$(readlink -f "$(git rev-parse --show-toplevel)")" test -f "$git_dir/tools/build_release.sh" Build() { test "$(git status --porcelain)" = "" || die "there are uncommited changes" git clean -fdx ./autogen.sh ./configure pushd ./doc/ ./autogen.sh ./configure --enable-doc popd make -j 5 make -C doc make -C doc gendoc make -j 5 distcheck make -C doc dist echo "Build: success" } Copy() { local V="$(ls -1 ./libnl-*.tar.gz | sed -n 's/^\.\/libnl-\(3\.[0-9]\+\.[0-9]\+\(-rc[0-9]\)\?\).tar.gz$/\1/p')" test -n "$V" local REL="libnl-$V" rm -rf "./$REL" mkdir "./$REL" ln "./libnl-$V.tar.gz" "./$REL/" ln "./doc/libnl-doc-$V.tar.gz" "./$REL/" ( cd "./$REL/" for F in "libnl-$V.tar.gz" "libnl-doc-$V.tar.gz"; do md5sum "./$F" > "./$F.md5sum" sha256sum "./$F" > "./$F.sha256sum" gpg ${GPG_USER--u thaller@redhat.com} --armor --verbose -o "./$F.sig" --detach-sign "./$F" done ) tar -cvf "./$REL.tar" "./$REL/" echo "Copy: success" } BuildAll() { Build || return Copy || return echo "BuildAll: success" } case "$1" in Build) Build ;; Copy) Copy ;; BuildAll) BuildAll ;; *) echo "SYNOPSIS: $0 Build|Copy|BuildAll" echo "WARNING: does a git-clean first!!" ;; esac