}
usage="Usage:
-${0##*/} [-i] [-u] [-t] [-n] [-m <MESSAGE>] <SPECLIST>
+${0##*/} [-i] [-g] [-u] [-t|-n] [-m <MESSAGE>] <SPECLIST>
Options:
-i
Try to increment package release
+-g
+ get packages if missing, do nothing else
-u
- git pull first
+ update packages (git pull)
-t | -n
Test mode (dry-run). do not commit
-m
package_name() {
local specfile="${1%/}" package
+ # strip branch
+ specfile=${specfile%:*}
# basename
specfile=${specfile##*/}
# strip .spec
echo $package
}
+get_branch() {
+ local specfile="${1%/}" branch
+
+ branch=${specfile#*:}
+
+ if [ "$branch" != "$specfile" ]; then
+ echo "$branch"
+ else
+ echo ""
+ fi
+}
+
if [ ! -x /usr/bin/getopt ]; then
echo >&1 "You need to install util-linux to use relup.sh"
exit 1
fi
-t=$(getopt -o 'm:inuth' -n "${0##*/}" -- "$@") || exit $?
+t=$(getopt -o 'm:inguth' -n "${0##*/}" -- "$@") || exit $?
# Note the quotes around `$t': they are essential!
eval set -- "$t"
-u)
update=1
;;
+ -g)
+ get=1
+ ;;
-t | -n)
test=1
;;
cd "$topdir"
for pkg in "$@"; do
+ branch=$(get_branch "$pkg")
# pkg: package %{name}
pkg=$(package_name "$pkg")
specname=${spec##*/}
# start real work
- echo "$pkg ..."
+ if [ -n "$branch" ]; then
+ echo "$pkg:$branch ..."
+ else
+ echo "$pkg ..."
+ fi
# get package
- if [ "$update" = "1" ]; then
- ./builder -g -ns "$spec"
+ [ "$get" = 1 -a -d "$pkgdir" ] && continue
+
+ if [ "$update" = "1" -o "$get" = "1" ]; then
+ if [ -n "$branch" ]; then
+ ./builder -g -ns "$spec" -r $branch
+ else
+ ./builder -g -ns "$spec"
+ fi
fi
+ [ "$get" = 1 ] && continue
+
# update .spec files
rel=$(get_release "$spec")
if [ "$inc" = 1 ]; then
newrel=$(bump_release ${rel})
set_release "$spec" $rel $newrel
fi
+
+ # refetch release
+ rel=$(get_release "$spec")
fi
# commit the changes