]>
code.delx.au - gnu-emacs-elpa/blob - admin/update-archive.sh
7 "--batch") batchmode
=yes ;;
10 # Return on STDOUT the files that don't seem to have the needed copyright
11 # notice, or that have a copyright notice that looks suspicious.
12 copyright_notices
() {
13 find .
-name '*.el' -print0 |
14 xargs -0 grep -L 'Free Software Foundation, Inc' |
15 grep -v '\(\.dir-locals\|.-\(pkg\|autoloads\)\)\.el$'
17 find .
-name '*.el' -print |
19 sed -n -e '/[Cc]opyright.*, *[1-9][-0-9]*,\?$/N' \
20 -e '/Free Software Foundation/d' \
21 -e "s|^\\(.*[Cc]opyright\\)|$(echo $f | tr '|' '_'):\\1|p" "$f"
25 # Send an email to warn about a problem.
26 # Takes the body on STDIN and the subject as argument.
29 if [ "no" = "$batchmode" ]; then
33 mx_gnu_org
="$(host -t mx gnu.org | sed 's/.*[ ]//')"
34 (sleep 5; echo "HELO elpa.gnu.org"
35 sleep 1; echo "MAIL FROM: <elpa@elpa.gnu.org>"
36 sleep 1; echo "RCPT TO: <emacs-elpa-diffs@gnu.org>"
39 From: ELPA update <elpa@elpa.gnu.org>
40 To: emacs-elpa-diffs@gnu.org
45 echo "."; sleep 1) |
telnet "$mx_gnu_org" smtp
50 base
="copyright_exceptions"
51 (cd packages
; copyright_notices
) >"$base.new"
52 if [ -r "$base.old" ] &&
53 ! diff "$base.old" "$base.new" >/dev
/null
;
55 diff -u "$base.old" "$base.new" |
56 signal_error
"Copyright notices changed"
59 mv "$base.new" "$base.old"
68 git pull || signal_error
"git pull failed";
70 # Refresh the ChangeLog files. This needs to be done in
71 # the source tree, because it needs the Bzr data!
73 emacs
-batch -l ..
/admin
/archive-contents.el
-f batch-prepare-packages
);
75 emacs
--batch -l admin
/archive-contents.el
-f archive-add
/remove-externals
;
80 rm -rf archive
# In case there's one left over!
81 make archive-full
>make.log
2>&1 ||
{
82 signal_error
"make archive-full failed" <make.log
85 latest
="emacs-packages-latest.tgz"
87 tar zcf
"$latest" packages
)
89 # Not sure why we have `staging-old', but let's keep it for now.
91 cp -a staging staging-old
92 # Move new files into place but don't throw out old package versions.
93 for f
in build
/archive
/packages
/*; do
94 dst
="staging/packages/$(basename "$f")"
95 # Actually, let's never overwrite an existing version. So changes can
96 # be installed without causing a new package to be built until the
97 # version field is changed. Some files need to be excluded from the
98 # "immutable" policy, most importantly "archive-contents"
101 */archive-contents |
*-readme.txt
) mv "$f" "$dst" ;;
108 mv build
/archive
/"$latest" staging
/
109 rm -rf build
/archive
)
111 # Make the HTML files.
112 (cd ~elpa
/staging
/packages
113 emacs
--batch -l ~elpa
/build
/admin
/archive-contents.el \
114 --eval '(batch-html-make-index)')
116 # "make archive-full" already does fetch the daily org build.
117 #admin/org-synch.sh ~elpa/staging/packages ~elpa/build/admin