#!/bin/bash
+# Don't do releases in the wee hours :-)
+h=$(date '+%H')
+(( "$h" < 10 && "$h" > 4 )) && {
+ echo "Go back to bed" 1>&2
+ exit 1
+}
+
+eval $(ssh-agent -s)
+ssh-add ~/.ssh/ra.kernel.org
+
+# This means I get the right tag if I finish after midnight
+d=$(date --date "5 hours ago" '+%Y%m%d')
+l="$(git describe --match "v*" --abbrev=0)"
+n="next-$d"
+
mkdir Next
echo 'Trees included into this release:
Name Type URL
---- ---- ---' > Next/Trees
+(
IFS=' '
-while read email type name url ref; do
+while read email type name url ref build; do
[[ "$email" =~ '^#.*$' ]] && continue
tab="\t"
[ $(echo "$name" | wc -c) -le 8 ] && tab="\t\t"
+ [ "${ref%:*}" = "${ref}" ] || ref=${ref##*:}
[ "$type" = "git" ] && url="$url#$ref"
- printf "%s$tab%s\t%s\n" $name $type $url
-done <../real_control >>Next/Trees
+ printf "%s$tab%s\t%s\n" $name $type $url >>Next/Trees
+done <../etc/control
+)
-cp ../quilt-import.log ../merge.log Next/.
+mv ../SHA1s Next/SHA1s
-d=$(date '+%Y%m%d')
+for i in quilt-import.log merge.log; do
+ grep -v '^Checking out files:' ../$i >Next/$i
+done
-printf "%s-next-%s\n" "" $d >localversion-next
+printf -- "-next-%s\n" $d >localversion-next
git add Next localversion-next
-git commit -s -v -a -m "Add linux-next specific files"
-git tag "next-$d"
-git update-ref refs/heads/stable refs/remotes/origin/master
+git commit -s -v -a -m "Add linux-next specific files for $d"
+git tag -u 41D5C07A -m "$n" "$n"
+
+git branch -f stable refs/remotes/origin/master
+
+p="patch-$l-$n"
+git diff-tree -p "$l.." >"../$p"
+gpg2 -u 41D5C07A -a -b "../$p"
+#echo "$l" > "../LATEST-IS-$n"
+
+$(dirname $0)/make_abat_scripts "$d" "$l"
+
+oldest=$(date --date "3 months ago" '+%Y%m%d')
+echo "Removing old releases ... <= next-$oldest"
+
+for i in $(git ls-remote --tags korg next-\* |
+ sed -n 's,^.*[ \t]refs/tags/next-\([0-9]*\)$,\1,p' |
+ sort -n); do
+ [ $i -gt $oldest ] && break
+ git push korg --delete next-$i
+done
+
+echo Pushing to korg ...
+git push korg
+
+echo Pushing to korg-history ...
+git push korg-history
+
+echo Pushing to history
+git push history
+
+echo Pushing patch to kernel.org ...
+cd ..
+xz -v -9 "$p"
+kup --host=geb.kernel.org put "$p.xz" "$p.asc" "/pub/linux/kernel/next/$p.gz"
+
+ssh-agent -k
exit 0