summaryrefslogtreecommitdiffstats
path: root/AUTHORS.md
diff options
context:
space:
mode:
Diffstat (limited to 'AUTHORS.md')
0 files changed, 0 insertions, 0 deletions
href='#n89'>89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
#!/bin/bash
# SPDX-License-Identifier: GPL-3.0+

#
# update-tags
#
scriptname=update-tags
if ! MYTMP=$(mktemp -d -t $scriptname-XXXXXX)
then
            echo >&2
            echo >&2
            echo >&2 "Cannot create temporary directory."
            echo >&2
            exit 1
fi

cleanup() {
  status=$?
  if [ $status -ne 0 ]
  then
    echo "FAILED."
    if [ "$TAGVER" ]
    then
      git tag -d "$TAGVER"
    fi
    echo "To re-run manually:"
    echo "  git diff HEAD^ | ./packaging/update-tags -"
    echo "To undo commit:"
    echo "  git reset HEAD^"
  fi
  rm -rf "${MYTMP}"
  exit $status
}

# clean up if we get stopped by Crtl-C or forced logout or normal exit
trap cleanup INT
trap cleanup HUP
trap cleanup 0

set -e
if [ "$1" = "--debug" ]
then
  set -x
  shift
fi

if [ $# -lt 1 ]
then
  echo "Use only from .git/hooks/post-commit"
  exit 1
fi

if [ ! -x packaging/update-tags ]
then
  echo "Must be run from base directory"
  exit 1
fi

if [ "$1" = "-" ]
then
  from_cache=Y
  f=""
else
  from_cache=
  for f in "$@"
  do
    if [ ! -f "$f" ]
    then
      echo "$f: no such file"
      exit 1
    fi
  done

  git status --porcelain "$@" | grep "^?" | cut -c4- > $MYTMP/missing.lst

  while read missing
  do
     git update-index --add --cacheinfo \
          100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 $missing
  done < $MYTMP/missing.lst

  empty_tree=4b825dc642cb6eb9a060e54bf8d69288fbee4904
  git diff $empty_tree -- "$@" > $MYTMP/diff.full
  f=$MYTMP/diff.full

  while read missing
  do
     git update-index --force-remove $missing
  done < $MYTMP/missing.lst
fi

> $MYTMP/diff.lst sed -e "/^+++ b/{p;s:^+++ b/::;w $MYTMP/files.lst" -e "d;}" $f

#cat $MYTMP/diff.lst
#cat $MYTMP/files.lst

dirname="${0%/*}"
if [ "$dirname" = "$0" ]; then dirname="."; fi
source $dirname/packaging.functions

status=0
while read filename
do
  #echo Checking $filename
  case $filename in
    configure.ac|ChangeLog)
      mkdir -p $MYTMP/files
      git show HEAD:configure.ac > $MYTMP/files/configure.ac
      version=`get_configure_ac_version`
      case "$(match_version $version)" in
         prerelease|candidate|release)
           do_release=Y
         ;;
      esac
    ;;
    *)
      #echo "No checks found for $filename"
      :
    ;;
  esac
done < $MYTMP/files.lst

if [ "$do_release" ]
then
  echo "Tagging new release with:"
  echo "   git tag -s \"v$version\" -m \"Release version $version\""
  git tag -s "v$version" -m "Release version $version"
  TAGVER="v$version"

  splitver confmaj confmin conffix confsfx "$version"
  if [ ! "$confsfx" ]
  then
    echo "Incrementing version in configure.ac:"
    conffix=`expr $conffix + 1`
    sed -i -e "s/define(\[VERSION_FIX\], \[.*])/define([VERSION_FIX], [$conffix])/" configure.ac
  fi

  echo "Resetting suffix in configure.ac:"
  sed -i -e 's/define(\[VERSION_SUFFIX\], \[.*])/define([VERSION_SUFFIX], [_rolling])/' configure.ac
  sed -i -e 's:^PACKAGE_RPM_RELEASE=.*:PACKAGE_RPM_RELEASE="0.0.$(echo VERSION_SUFFIX | sed s/^_//)":' configure.ac

  echo "Committing new configure.ac:"
  git commit --no-verify -m "Post release $version" -- configure.ac
  echo ""
  echo "Verify, then:"
  echo "  git push origin"
  echo "  git push origin tag $TAGVER"
fi

exit $status