summaryrefslogtreecommitdiff
path: root/mksrcrelease.sh
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2022-11-22 08:27:29 +0100
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2022-11-22 08:27:29 +0100
commit61a0dd71c4b69c21ee4aacdc0459dba58504a24a (patch)
tree6a26980ffa225421229e7d5da5b901da198fea29 /mksrcrelease.sh
parent47e531197b18a0e9806bf8e3a2e69f203f5efd13 (diff)
Move helper scripts to scripts/ sub directory
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'mksrcrelease.sh')
-rwxr-xr-xmksrcrelease.sh140
1 files changed, 0 insertions, 140 deletions
diff --git a/mksrcrelease.sh b/mksrcrelease.sh
deleted file mode 100755
index c08c834..0000000
--- a/mksrcrelease.sh
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/bin/bash
-
-set -e
-
-usage() {
- cat <<EOF
-
-Usage: ${0##*/} <new_version>
-
-<new_version> - release version to create in X.Y.Z format
-EOF
- exit 0
-}
-
-fatal() {
- printf "Error: %s\n" "$1" >&2
- exit 1
-}
-
-askyesno() {
- local question="$1"
- local choice=""
-
- read -p "$question [y/N]? " choice
-
- case "$choice" in
- y|Y)
- echo "yes"
- ;;
- *)
- ;;
- esac
-
- return 0
-}
-
-##### get the command line arguments
-[ $# -eq 0 ] && usage
-[ $# -eq 1 ] || fatal "Insufficient or too many argumetns"
-
-new_ver="$1"; shift
-
-VER_REGEX="\([0-9]\+.[0-9]\+.[0-9]\+\)"
-echo "$new_ver" | grep -q -x "$VER_REGEX" ||
- fatal "please, provide new version in X.Y.Z format"
-
-##### parse the old version information
-old_ver="$(grep AC_INIT configure.ac | grep -o \\[[0-9.]*\\] | tr -d [])"
-old_so_ver="$(grep LIBSQUASHFS_SO_VERSION configure.ac | \
- grep -o \\[[0-9:]*\\] | tr -d [])"
-
-current=$(echo "${old_so_ver}" | cut -d: -f1)
-revision=$(echo "${old_so_ver}" | cut -d: -f2)
-age=$(echo "${old_so_ver}" | cut -d: -f3)
-
-echo "$old_ver" | grep -q -x "$VER_REGEX" ||
- fatal "error reading old version number"
-
-VER_REGEX="\([0-9]\+:[0-9]\+:[0-9]\+\)"
-echo "$old_so_ver" | grep -q -x "$VER_REGEX" ||
- fatal "error reading old so version"
-
-[ "x$current:$revision:$age" = "x$old_so_ver" ] || \
- fatal "Error parsing old so version"
-
-##### generate new library SO version
-libchanges=$(git diff --numstat v${old_ver}..HEAD lib/sqfs/ | wc -l)
-
-if [ $libchanges -gt 0 ]; then
- echo "Detected changes to library code, updating so version"
- changed=$(askyesno "Have any public interfaces been changed")
- added=$(askyesno "Have any public interfaces been added")
- removed=$(askyesno "Have any public interfaces been removed")
-
- revision=$((revision+1))
-
- if [ -n "$added" -o -n "$removed" -o -n "$changed" ]; then
- current=$((current+1))
- revision=0
- fi
-
- if [ -n "$added" ]; then
- age=$((age+1))
- fi
-
- if [ -n "$removed" -o -n "$changed" ]; then
- age=0
- fi
-else
- echo "No changes to library code detected, keeping old so version"
-fi
-
-new_so_ver="${current}:${revision}:${age}"
-
-echo ""
-echo "current package version: $old_ver"
-echo "current library so-version: $old_so_ver"
-echo ""
-echo "creating package version: $new_ver"
-echo "With library so-version: $new_so_ver"
-echo ""
-
-if [ "x$(askyesno "Is this ok")" != "xyes" ]; then
- echo "Aborting"
- exit
-fi
-
-tag_name="v$new_ver"
-release_name="squashfs-tools-ng-${new_ver}"
-
-# Make sure the git index is up-to-date
-[ -z "$(git status --porcelain)" ] || fatal "Git index is not up-to-date"
-
-# Make sure the tag does not exist
-[ -z "$(git tag -l "$tag_name")" ] || fatal "Tag $tag_name already exists"
-
-# Change the version in the configure.ac
-sed -i -e "s/$old_ver/$new_ver/g" configure.ac
-sed -i -e "s/$old_so_ver/$new_so_ver/g" configure.ac
-
-# Commit the change, create new signed tag
-echo "Generating signed release commit tag $tag_name"
-
-git commit -s -m "Release version $new_ver" configure.ac
-git tag -m "Release $new_ver" -s "$tag_name"
-
-# Prepare signed tarball
-./autogen.sh
-./configure
-make -j distcheck
-
-echo "Signing the tarball"
-gpg -o "$release_name.tar.gz.asc" --detach-sign \
- -a "$release_name.tar.gz"
-gpg -o "$release_name.tar.xz.asc" --detach-sign \
- -a "$release_name.tar.xz"
-
-echo "Generating doxygen documentation"
-make doxygen-doc
-tar czf "doxydoc-$new_ver.tar.gz" -C doxygen-doc/html .