75 lines
1.6 KiB
Bash
Executable file
75 lines
1.6 KiB
Bash
Executable file
#!/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
|