#!/bin/bash #This file is part of FlightGear # #FlightGear is free software: you can redistribute it and/or modify #it under the terms of the GNU General Public License as published by #the Free Software Foundation, either version 2 of the License, or #(at your option) any later version. # #FlightGear is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #GNU General Public License for more details. # #You should have received a copy of the GNU General Public License #along with Foobar. If not, see . if [ -z "$1" -o -z "$2" ]; then echo "usage: thismajor.thisminor nextmajor.nextminor path" exit fi IFS='.' read -r -a VERSION_A <<< "$1" shift if [ ${#VERSION_A[@]} != 2 ]; then echo "Need version as 'number.number'" exit fi THIS_MAJOR_VERSION=${VERSION_A[0]} THIS_MINOR_VERSION=${VERSION_A[1]} RELEASE_BRANCH="release/${THIS_MAJOR_VERSION}.${THIS_MINOR_VERSION}" IFS='.' read -r -a VERSION_A <<< "$1" shift if [ ${#VERSION_A[@]} != 2 ]; then echo "Need version as 'number.number'" exit fi NEXT_MAJOR_VERSION=${VERSION_A[0]} NEXT_MINOR_VERSION=${VERSION_A[1]} setVersionTo() { local V="$1" echo "setting version to $V" echo "$V" > version git add version echo "new version: $V" | git commit --file=- git tag "version/$V" } createBranch() { echo "Preparing release in `pwd`" git checkout next git pull --rebase setVersionTo "${THIS_MAJOR_VERSION}.${THIS_MINOR_VERSION}.1" echo "Creating branch $RELEASE_BRANCH for version $(cat version) in `pwd`" git branch "$RELEASE_BRANCH" setVersionTo "${NEXT_MAJOR_VERSION}.${NEXT_MINOR_VERSION}.0" } while [ $# -gt 0 ]; do echo "Processing $1" pushd $1 > /dev/null git config user.name "Automatic Release Builder" git config user.email "build@flightgear.org" createBranch popd > /dev/null shift done