]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - misc/tools/conflict-rss.sh
more fixes
[xonotic/xonotic.git] / misc / tools / conflict-rss.sh
index fb10ebd6c39b554e50951f6847b50da36be6feb9..c64fffdb6e67d0258f48491b34aea680e930bd4a 100755 (executable)
@@ -21,17 +21,21 @@ to_rss()
        outdir=$1
        name=$2
        masterhash=$3
-       hash=$4
-       branch=$5
-       repo=$6
-       if [ -n "$repo" ]; then
-               repo=" in $repo"
-       fi
+       masterbranch=$4
+       hash=$5
+       branch=$6
+       repo=$7
 
        filename=`echo -n "$name" | tr -c 'A-Za-z0-9' '_'`.rss
        outfilename="$outdir/$filename"
+       masterbranch=`echo -n "$masterbranch" | escape_html`
        branch=`echo -n "$branch" | escape_html`
        repo=`echo -n "$repo" | escape_html`
+       if [ -n "$repo" ]; then
+               repotxt=" in $repo"
+       else
+               repotxt=
+       fi
 
        if ! [ -f "$outfilename" ]; then
                datetime=`date --rfc-2822`
@@ -49,10 +53,11 @@ EOF
        fi
        cat >>"$outfilename" <<EOF
        <item>
-               <title>$branch$repo ($hash)</title>
-               <link>http://git.xonotic.org/?p=xonotic/netradiant.git;a=shortlog;h=refs/heads/$name/$branch</link>
-               <guid isPermaLink="false">http://de.git.xonotic.org/conflicts/$filename#$hash-$masterhash</guid>
+               <title>$branch$repotxt</title>
+               <link>http://git.xonotic.org/?p=$repo;a=shortlog;h=refs/heads/$name/$branch</link>
+               <guid isPermaLink="false">http://de.git.xonotic.org/conflicts/$filename#$hash</guid>
                <description><![CDATA[
+               Conflicts of $branch at $hash against $masterbranch at $masterhash:
 EOF
  
        echo -n "<pre>" >>"$outfilename"
@@ -69,7 +74,7 @@ clear_rss()
 {
        datetime=`date --rfc-2822`
        sed -i -e '/<lastBuildDate>/,$d' "$1"
-       cat <<EOF >"$1"
+       cat <<EOF >>"$1"
        <lastBuildDate>$datetime</lastBuildDate>
 EOF
 }
@@ -86,14 +91,14 @@ if [ -z "$outdir" ]; then
        set --
 fi
 
-case "$repodir" in
-       '')
-               repo=`git config remote.origin.url | cut -d / -f 4-`
-               ;;
-       *)
-               repo=$repodir # FIXME
-               ;;
-esac
+repo=$(
+       (
+               if [ -n "$repodir" ]; then
+                       cd "$repodir"
+               fi
+               git config remote.origin.url | cut -d / -f 4-
+       )
+)
 
 case "$action" in
        --init)
@@ -118,13 +123,22 @@ case "$action" in
                                git rev-parse HEAD
                        )
                )
+               masterbranch=$(
+                       (
+                               if [ -n "$repodir" ]; then
+                                       cd "$repodir"
+                               fi
+                               git symbolic-ref HEAD
+                       )
+               )
+               masterbranch=${masterbranch#refs/heads/}
                (
                        if [ -n "$repodir" ]; then
                                cd "$repodir"
                        fi
                        branches
                ) | while read -r HASH TYPE REFNAME; do
-                       echo >&2 -n "$repodir $REFNAME..."
+                       echo >&2 -n "$repo $REFNAME..."
                        out=$(
                                (
                                        if [ -n "$repodir" ]; then
@@ -150,7 +164,7 @@ case "$action" in
                                                n=divVerent
                                                ;;
                                esac
-                               echo "$out" | to_rss "$outdir" "$n" "$masterhash" "$HASH" "$b" "$repo"
+                               echo "$out" | to_rss "$outdir" "$n" "$masterhash" "$masterbranch" "$HASH" "$b" "$repo"
                                echo >&2 " CONFLICT"
                        else
                                echo >&2 " ok"