X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=relup.sh;h=573919793d970b6f736a360cd0b33db7190a8464;hb=9439a215500ef79bd92e3c1a8f80932c8c3ee57c;hp=618d10ec65c8e41258acc761e35059d9bfe3acd5;hpb=409001f78d68294c86fe5801279431cf56096a38;p=packages%2Frpm-build-tools.git diff --git a/relup.sh b/relup.sh index 618d10e..5739197 100755 --- a/relup.sh +++ b/relup.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # script to run after "release bump" style change. # takes Release from spec and creates commit with message # groups similiar commits together. @@ -8,12 +8,19 @@ set -e get_dump() { local specfile="$1" - if ! out=$(rpm --specfile "$specfile" --define 'prep %dump' -q 2>&1); then - echo >&2 "$out" + local rpm_dump + local success="y" + if [ -x /usr/bin/rpm-specdump ]; then + rpm_dump=$(rpm-specdump "$specfile" 2>&1) || success="n" + else + rpm_dump=$(rpm --specfile "$specfile" --define 'prep %dump' -q 2>&1) || success="n" + fi + if [ "$success" != "y" ]; then + echo >&2 "$rpm_dump" echo >&2 "You need icon files being present in SOURCES." exit 1 fi - echo "$out" + echo "$rpm_dump" } usage="Usage: @@ -38,7 +45,7 @@ get_release() { rel=$(awk '/^%define[ ]+_?rel[ ]+/{print $NF}' $specfile) if [ -z "$rel" ]; then dump=$(get_dump "$specfile") - rel=$(echo "$dump" | awk '/PACKAGE_RELEASE/{print $NF; exit}') + rel=$(echo "$dump" | awk '$2~/^(PACKAGE_)?RELEASE$/{print $NF; exit}') fi echo $rel } @@ -77,6 +84,8 @@ bump_release() { package_name() { local specfile="${1%/}" package + # strip branch + specfile=${specfile%:*} # basename specfile=${specfile##*/} # strip .spec @@ -85,6 +94,18 @@ package_name() { 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 @@ -135,6 +156,7 @@ n="${n%%n}" cd "$topdir" for pkg in "$@"; do + branch=$(get_branch "$pkg") # pkg: package %{name} pkg=$(package_name "$pkg") @@ -149,13 +171,21 @@ for pkg in "$@"; do specname=${spec##*/} # start real work - echo "$pkg ..." + if [ -n "$branch" ]; then + echo "$pkg:$branch ..." + else + echo "$pkg ..." + fi # get package [ "$get" = 1 -a -d "$pkgdir" ] && continue if [ "$update" = "1" -o "$get" = "1" ]; then - ./builder -g -ns "$spec" + if [ -n "$branch" ]; then + ./builder -g -ns "$spec" -r $branch + else + ./builder -g -ns "$spec" + fi fi [ "$get" = 1 ] && continue @@ -171,12 +201,16 @@ for pkg in "$@"; do newrel=$(bump_release ${rel}) set_release "$spec" $rel $newrel fi + + # refetch release + rel=$(get_release "$spec") fi # commit the changes msg="" - [ -n "$message" ] && msg="$msg- $message$n" - msg="$msg- release ${rel%%%*} (by relup.sh)" + [ -n "$message" ] && msg="${msg}$message$n$n" + msg="${msg}Release ${rel%%%*} (by relup.sh)" + echo git commit -m "$msg" $spec if [ "$test" != 1 ]; then cd $pkgdir