[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ELPA-diffs] /srv/bzr/emacs/elpa r290: New script for auto-update of GNU
From: |
Stefan Monnier |
Subject: |
[ELPA-diffs] /srv/bzr/emacs/elpa r290: New script for auto-update of GNU ELPA. |
Date: |
Tue, 30 Oct 2012 13:49:47 -0400 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 290
committer: Stefan Monnier <address@hidden>
branch nick: elpa
timestamp: Tue 2012-10-30 13:49:47 -0400
message:
New script for auto-update of GNU ELPA.
added:
admin/update-archive.sh
modified:
Makefile
=== modified file 'Makefile'
--- a/Makefile 2012-10-22 21:56:43 +0000
+++ b/Makefile 2012-10-30 17:49:47 +0000
@@ -25,7 +25,7 @@
archive-tmp: packages
mkdir -p $(ARCHIVE_TMP)
- cp -r packages $(ARCHIVE_TMP)
+ cp -r packages/. $(ARCHIVE_TMP)/packages
process-archive:
cd $(ARCHIVE_TMP)/packages; $(EMACS) -batch -l
$(CURDIR)/admin/archive-contents.el -f batch-make-archive
@@ -47,13 +47,13 @@
## admin scripts:
archive-full: archive-tmp org-fetch
$(MAKE) $(MFLAGS) process-archive
- mkdir -p archive/admin
- cp admin/* archive/admin/
+ #mkdir -p archive/admin
+ #cp admin/* archive/admin/
org-fetch: archive-tmp
- cd archive-tmp/packages; \
- pkgname=`curl -s http://orgmode.org/elpa/|perl -ne 'push @f, $1 if
m/(org-\d{8})\.tar/; END { @f = sort @f; print "$f[-1]\n"}'`; \
- wget -q http://orgmode.org/elpa/${pkgname}.tar -O ${pkgname}.tar; \
+ cd $(ARCHIVE_TMP)/packages; \
+ pkgname=`curl -s http://orgmode.org/elpa/|perl -ne 'push @f, $$1 if
m/(org-\d{8})\.tar/; END { @f = sort @f; print "$$f[-1]\n"}'`; \
+ wget -q http://orgmode.org/elpa/$${pkgname}.tar -O $${pkgname}.tar; \
if [ -f $${pkgname}.tar ]; then \
tar xf $${pkgname}.tar; \
rm -f $${pkgname}.tar; \
=== added file 'admin/update-archive.sh'
--- a/admin/update-archive.sh 1970-01-01 00:00:00 +0000
+++ b/admin/update-archive.sh 2012-10-30 17:49:47 +0000
@@ -0,0 +1,83 @@
+#!/bin/sh -x
+
+batchmode=no
+
+export LANG=C
+case "$1" in
+ "--batch") batchmode=yes ;;
+esac
+
+# Return on STDOUT the files that don't seem to have the needed copyright
+# notice, or that have a copyright notice that looks suspicious.
+copyright_notices () {
+ find . -name '*.el' -print0 |
+ xargs -0 grep -L 'Free Software Foundation, Inc' |
+ grep -v '.-\(pkg\|autoloads\)\.el$'
+
+ find . -name '*.el' -print |
+ while read f; do
+ sed -n -e '/[Cc]opyright.*, *[1-9][-0-9]*,\?$/N' \
+ -e '/Free Software Foundation/d' \
+ -e "s|^\\(.*[Cc]opyright\\)|$(echo $f | tr '|' '_'):\\1|p" "$f"
+ done
+}
+
+# Send an email to warn about a problem.
+# Takes the body on STDIN and the subject as argument.
+signal_error () {
+ title="$*"
+ if [ "no" = "$batchmode" ]; then
+ cat -
+ echo "Error: $title"
+ else
+ set -- $(host -t mx gnu.org);
+ mx_gnu_org="$4"
+ (cat <<ENDDOC
+HELO elpa.gnu.org
+MAIL FROM: <address@hidden>
+RCPT TO: <address@hidden>
+DATA
+From: ELPA update <address@hidden>
+To: address@hidden
+ENDDOC
+ echo "Subject: $title"
+ echo
+ cat -
+ echo ".") | telnet "$mx_gnu_org" smtp
+ fi
+}
+
+check_copyright () {
+ base="copyright_exceptions"
+ (cd packages; copyright_notices) >"$base.new"
+ if [ -r "$base.old" ] &&
+ ! diff "$base.old" "$base.new" >/dev/null;
+ then
+ diff -u "$base.old" "$base.new" |
+ signal_error "Copyright notices changed"
+ exit 1
+ else
+ mv "$base.new" "$base.old"
+ fi
+}
+
+cd ~elpa/build
+
+(cd ~elpa/elpa; bzr up)
+
+check_copyright
+
+rm -rf archive # In case there's one left over!
+make archive-full >make.log 2>&1 || {
+ signal_error "make archive-full failed" <make.log
+ exit 1
+}
+(cd ~elpa
+ rm -rf staging-old
+ mv staging staging-old
+ mv build/archive staging)
+(cd ~elpa/staging
+ tar zcf emacs-packages-latest.tgz packages)
+
+# "make archive-full" already does fetch the daily org build.
+#admin/org-synch.sh ~elpa/staging/packages ~elpa/build/admin
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [ELPA-diffs] /srv/bzr/emacs/elpa r290: New script for auto-update of GNU ELPA.,
Stefan Monnier <=