56 lines
1.6 KiB
Bash
Executable File
56 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ "$1" = "" ]; then
|
|
echo "Usage: archrelease <repo>"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f PKGBUILD ]; then
|
|
echo "archrelease: PKGBUILD not found"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$(basename $(readlink -f .))" != "trunk" ]; then
|
|
echo "archrelease: Not in a package trunk dir"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$(svn diff)" != "" ]; then
|
|
echo "archrelease: You have not committed your changes yet!"
|
|
echo " Please run 'upgpkg' or 'svn commit' first"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d ../repos/$1 ]; then
|
|
pushd ..
|
|
[ -d repos ] || mkdir repos
|
|
svn copy -r HEAD trunk repos/$1
|
|
svn commit -m "archrelease: new repo $1"
|
|
pushd repos/$1
|
|
svnmerge init
|
|
svn commit -F svnmerge-commit-message.txt
|
|
rm svnmerge-commit-message.txt
|
|
popd
|
|
popd
|
|
else
|
|
svnmerge merge ../repos/$1
|
|
pushd ..
|
|
if [ -f trunk/svnmerge-commit-message.txt ]; then
|
|
svn commit -F trunk/svnmerge-commit-message.txt
|
|
if [ $? -ne 0 ]; then
|
|
# The user is going to have to clean things up a bit
|
|
echo "*** ATTENTION: There was a problem merging the package changes ***"
|
|
echo "To fix it, edit the conflicting files in repos/$1 (the ones that are C in svn status)."
|
|
echo "Once you have resolved conflicts, execute 'svn resolved <path to file>' to tell svn the error was resolved."
|
|
echo "Then to finish the merge commit, execute 'svn commit -F trunk/svnmerge-commit-message.txt' and, if there are no problems, delete trunk/svnmerge-commit-message.txt"
|
|
exit $?
|
|
fi
|
|
rm trunk/svnmerge-commit-message.txt
|
|
else
|
|
echo "Nothing to commit"
|
|
fi
|
|
popd
|
|
fi
|
|
|
|
echo "===> Tagged for $1"
|