]> git.donarmstrong.com Git - bin.git/blobdiff - buildd_sign
add reset usb bus command
[bin.git] / buildd_sign
index f202716bb8eb2d0b7b49e15d616b8e078ec20018..70e106937acb1ef948b8edf7651a9dbd8f339145 100755 (executable)
@@ -1,26 +1,88 @@
-#!/bin/sh
+#!/bin/bash
 
 
+function mark_read {
+    if echo "$1"|grep -q 'RS$'; then
+        # do nothing
+        true;
+    elif echo "$1"|grep -q 'S$'; then
+        mv "${1}" "${1%%S}RS";
+    else
+           mv "${1}" "${1}RS";
+           if echo "$1"|grep -q 'new/'; then
+               rename 's{new/}{cur/}' "${1}RS";
+           elif echo "$1"|grep -q 'cur' || pwd|egrep -q 'cur/?$'; then
+            # do nothing
+            true;
+        else
+               mv "${1}RS" ../cur/"${1}RS";
+           fi;
+    fi;
+}
+
 #set -x;
 set -e;
 for a in "$@"; do
-    if egrep -q '^Subject: Log.+successful' "$a"; then
        RETURN_PATH=$(awk -F': ' '/^Return-Path:/{print $2}' "$a")
        SUBJECT=$(awk -F': ' '/^Subject:/{print $2}' "$a")
        KEY=9D05D0BE
-       TEMPDIR=$(mktemp -d)
-       cp "$a" "$TEMPDIR/reply"
-       buildd_script "$TEMPDIR/reply"
-       gpg --no-verbose --batch --quiet --default-key $KEY  --armor --output $TEMPDIR/reply.signed --clearsign $TEMPDIR/reply >/dev/null 2>&1
-       mutt -e 'set content_type="text/plain; charset=utf-8; x-action=pgp-signed"' -s "Re: $SUBJECT" "$RETURN_PATH" < $TEMPDIR/reply.signed
-       rm -f $TEMPDIR/reply $TEMPDIR/reply.signed
-       rmdir $TEMPDIR
-       mv "${a}" "${a}RS";
-       if echo "$a"|grep -q 'new/'; then
-           rename 's{new/}{cur/}' "${a}RS";
-       else
-           mv "${a}RS" ../cur/"${a}RS";
-       fi;
-       echo "Handled '${SUBJECT}'";
-    fi
-done;
\ No newline at end of file
+    if egrep -q '^Subject: Log.+successful' "$a"; then
+           TEMPDIR=$(mktemp -d)
+           cp "$a" "$TEMPDIR/reply"
+           buildd_script "$TEMPDIR/reply"
+           gpg --no-verbose --batch --quiet --default-key $KEY  --armor --output $TEMPDIR/reply.signed --clearsign $TEMPDIR/reply >/dev/null 2>&1
+           mutt -e 'set content_type="text/plain; charset=utf-8; x-action=pgp-signed"' -s "Re: $SUBJECT" "$RETURN_PATH" < $TEMPDIR/reply.signed
+           rm -f $TEMPDIR/reply $TEMPDIR/reply.signed
+           rmdir $TEMPDIR
+           mark_read "${a}";
+           echo "Handled '${SUBJECT}'";
+    elif egrep -q '^Subject: Log.+attempted' "$a" &&
+        egrep -q "ERROR: a 'NAMESPACE' file is required" "$a"; then
+        echo 'fail no namespace'| \
+            mutt -e 'set content_type="text/plain; charset=utf-8"' -s "Re: $SUBJECT" "$RETURN_PATH";
+           mark_read "${a}";
+           echo "Handled '${SUBJECT}'";
+    elif egrep -q '^Subject: Should I build' "$a"; then
+        echo 'ok'| \
+            mutt -e 'set content_type="text/plain; charset=utf-8"' -s "Re: $SUBJECT" "$RETURN_PATH";
+           mark_read "${a}";
+           echo "Handled '${SUBJECT}'";
+    elif egrep -q '^Subject: Log.+attempted' "$a" &&
+        egrep -q "ERROR: dependency .* is not available for package .*" "$a"; then
+        (echo -n 'fail '; egrep "ERROR: dependency .* is not available for package .*" "$a")| \
+            mutt -e 'set content_type="text/plain; charset=utf-8"' -s "Re: $SUBJECT" "$RETURN_PATH";
+           mark_read "${a}";
+           echo "Handled '${SUBJECT}'";
+    elif egrep -q '^Subject: Log.+attempted' "$a" &&
+        egrep -q "ERROR: compilation failed for package .*" "$a"; then
+        (echo -n 'fail '; grep "error|fail" "$a"|sed 's/\n//g')| \
+            mutt -e 'set content_type="text/plain; charset=utf-8"' -s "Re: $SUBJECT" "$RETURN_PATH";
+           mark_read "${a}";
+           echo "Handled '${SUBJECT}'";
+    elif egrep -q '^Subject: Log.+attempted' "$a" &&
+        egrep -q "ERROR: configuration failed for package .*" "$a"; then
+        (echo -n 'fail '; grep "error|fail" "$a"|sed 's/\n//g')| \
+            mutt -e 'set content_type="text/plain; charset=utf-8"' -s "Re: $SUBJECT" "$RETURN_PATH";
+           mark_read "${a}";
+           echo "Handled '${SUBJECT}'";
+    elif egrep -q '^Subject: Log.+attempted' "$a" &&
+        (egrep -q "Error *: package .* was found, but .* is required" "$a" || 
+         egrep -q "Error *: package .* was built before R" "$a"
+        ); then
+        echo 'give back'| \
+            mutt -e 'set content_type="text/plain; charset=utf-8"' -s "Re: $SUBJECT" "$RETURN_PATH";
+           mark_read "${a}";
+           echo "Handled '${SUBJECT}'";
+    elif egrep -q '^Subject: Log.+attempted' "$a"; then
+        echo "Unsure about '$SUBJECT'; giving back";
+        tail -n 30 "$a";
+        echo 'give back'| \
+            mutt -e 'set content_type="text/plain; charset=utf-8"' -s "Re: $SUBJECT" "$RETURN_PATH";
+           mark_read "${a}";
+           echo "Handled '${SUBJECT}'";
+    else
+        echo "Marking '$SUBJECT' read";
+           mark_read "${a}";
+           echo "Handled '${SUBJECT}'";
+    fi;
+done;