| #!/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 |