#!/bin/bash if [ -z "$1" ]; then echo "Please provide the source repo" exit -1 else SRC_REPO=$1 fi TARGET_DIR=$(realpath $(dirname "$0")) echo "== Updating $TARGET_DIR from $SRC_REPO ==" echo echo "== get current rev ==" cd $TARGET_DIR CURRENT_REV=$(cat libcups_version) echo "Current rev is $CURRENT_REV" echo echo "== create tmp dir ==" TMP_DIR=$(mktemp -d) echo "Created temporary dir $TMP_DIR" echo echo "== clone repo ==" cd $TMP_DIR git clone $SRC_REPO . echo echo "== find new stable rev ==" NEW_REV=$(git tag -l | grep -v "release" | grep -v "b" | grep -v "rc" | sort | tail -n1) echo "Stable rev is $NEW_REV" if [ "$CURRENT_REV" == "$NEW_REV" ] ; then echo echo ">>> Rev $CURRENT_REV is already the newest stable rev" else echo echo "== create diff in between rev $CURRENT_REV and rev $NEW_REV ==" TMP_DIFF=$(mktemp) git diff $CURRENT_REV $NEW_REV -- cups/ filter/ LICENSE.txt > $TMP_DIFF echo "Diff in $TMP_DIFF" echo echo "== Apply diff ==" cd $TARGET_DIR patch -p1 < $TMP_DIFF if [ $? -ne 0 ] ; then exit 1 fi # update version numbers in config.h sed -i -e "s/^\(#.*CUPS_SVERSION\).*/\1 \"CUPS $NEW_REV\"/g" config.h sed -i -e "s:^\(#.*CUPS_MINIMAL\).*:\1 \"CUPS/${NEW_REV#v}\":g" config.h echo echo ">>> Updated license" cp LICENSE.txt NOTICE echo $NEW_REV > libcups_version git add -A git commit -m "Update libcups to $NEW_REV" echo echo ">>> Updated libcups from $CURRENT_REV to $NEW_REV" fi echo echo "== Cleaning up ==" rm -f $TMP_DIFF rm -rf $TMP_DIR