2007-04-22 11:01:22 -04:00
|
|
|
#!/bin/bash
|
|
|
|
#
|
|
|
|
# This script can be used by a cron to generate snapshots.
|
|
|
|
# For example, use:
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
# 35 0 * * * mkdist -r elinks-0.11 -l 0.11 -s >>mkdist.log 2>&1
|
|
|
|
# 40 0 * * * mkdist -r HEAD -l 0.12 -s >>mkdist.log 2>&1
|
2007-04-22 11:01:22 -04:00
|
|
|
#
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
# Options:
|
|
|
|
# -g GIT_DIR Git repository from which this script exports ELinks.
|
|
|
|
# May be given in the environment instead.
|
|
|
|
# -r REVISION Git revision to be exported from the repository.
|
|
|
|
# -l LABEL User-friendly name of the branch or release.
|
|
|
|
# This ends up in the name of the tar file, and in the
|
|
|
|
# name of the directory it contains.
|
|
|
|
# -s Generate a snapshot (which has a date in the top-level
|
|
|
|
# directory).
|
|
|
|
# -d DOCDIR Copy prebuilt documentation from DOCDIR.
|
|
|
|
# -o OUTDIR Place the output files in OUTDIR. Defaults to the
|
|
|
|
# current directory.
|
2007-04-22 11:01:22 -04:00
|
|
|
|
|
|
|
# set -x
|
|
|
|
|
2008-06-30 09:14:49 -04:00
|
|
|
cat <<EOF
|
|
|
|
-------------------------------------------------
|
|
|
|
Date: $(date)
|
|
|
|
Args: $*
|
|
|
|
-------------------------------------------------
|
|
|
|
EOF
|
2007-04-22 11:01:22 -04:00
|
|
|
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
# Variables used in this script:
|
|
|
|
# $GIT_DIR = option -g GIT_DIR; passed in environment to Git
|
|
|
|
# $OPTARG = Bash special: argument of the option being parsed
|
|
|
|
# $OPTIND = Bash special: index of argument to be parsed next
|
|
|
|
# $commit = commit ID corresponding to $rev
|
|
|
|
# $docdir = option -d DOCDIR
|
|
|
|
# $label = option -l LABEL
|
|
|
|
# $opt = option letter being parsed, or '?' on error
|
|
|
|
# $outdir = option -o OUTDIR
|
|
|
|
# $rev = option -r REVISION
|
|
|
|
# $snap = option -s
|
|
|
|
# $tarbasename = name of the tar file without .tar.* extensions
|
|
|
|
# $tartopdir = name of the top directory within the tar file
|
|
|
|
# $tmpdir = temporary directory created by this script
|
|
|
|
|
|
|
|
rev=
|
|
|
|
label=
|
|
|
|
snap=
|
|
|
|
docdir=
|
|
|
|
outdir=.
|
|
|
|
while getopts "g:r:l:sd:o:" opt
|
|
|
|
do
|
|
|
|
case "$opt" in
|
|
|
|
(g) GIT_DIR=$OPTARG ;;
|
|
|
|
(r) rev=$OPTARG ;;
|
|
|
|
(l) label=$OPTARG ;;
|
|
|
|
(s) snap=1 ;;
|
|
|
|
(d) docdir=$OPTARG ;;
|
|
|
|
(o) outdir=$OPTARG ;;
|
|
|
|
("?") exit 1 ;;
|
2008-06-30 09:14:49 -04:00
|
|
|
(*) printf >&2 "%s:%d: bug found\n" "$0" "$LINENO"
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
exit 1 ;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
if [ $OPTIND -le $# ]
|
|
|
|
then
|
2008-06-30 09:14:49 -04:00
|
|
|
printf >&2 "%s: too many non-option arguments\n" "$0"
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
exit 1
|
2007-04-22 11:01:22 -04:00
|
|
|
fi
|
|
|
|
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
if [ -z "$GIT_DIR" ]
|
|
|
|
then
|
2008-06-30 09:14:49 -04:00
|
|
|
printf >&2 "%s: Must specify -g GIT_DIR option\n" "$0"
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
if [ -z "$outdir" ]
|
|
|
|
then
|
2008-06-30 09:14:49 -04:00
|
|
|
printf >&2 "%s: Must specify -o OUTDIR option\n" "$0"
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
if [ -z "$rev" ]
|
|
|
|
then
|
2008-06-30 09:14:49 -04:00
|
|
|
printf >&2 "%s: Must specify -r REVISION option\n" "$0"
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
if [ -z "$label" ]
|
|
|
|
then
|
|
|
|
label=$rev
|
|
|
|
fi
|
2007-04-22 11:01:22 -04:00
|
|
|
|
2008-06-30 10:45:35 -04:00
|
|
|
commit=$(git --git-dir="$GIT_DIR" rev-parse --verify "$rev^{commit}") || exit 1
|
2007-04-22 11:01:22 -04:00
|
|
|
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
if [ "$snap" ]
|
|
|
|
then
|
|
|
|
tartopdir=elinks-$label-$(date +%Y%m%d)
|
|
|
|
tarbasename=elinks-current-$label
|
2007-04-22 11:01:22 -04:00
|
|
|
else
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
tartopdir=elinks-$label
|
|
|
|
tarbasename=elinks-$label
|
2007-04-22 11:01:22 -04:00
|
|
|
fi
|
|
|
|
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
tmpdir=$(mktemp -d -t elinks-dist-XXXXXXXX) || exit 1
|
|
|
|
|
|
|
|
# To make it easier to compare build logs, put the source first in an
|
|
|
|
# "elinks" directory, and only move to "$tartopdir" when finished.
|
|
|
|
|
2008-06-30 10:45:35 -04:00
|
|
|
git --git-dir="$GIT_DIR" archive --format=tar --prefix="elinks/" "$rev" |
|
|
|
|
(cd -- "$tmpdir" && tar -xf -)
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
mkdir -- "$tmpdir/elinks/.git"
|
|
|
|
printf "%s\n" "$commit" > "$tmpdir/elinks/.git/HEAD"
|
|
|
|
|
|
|
|
(set -e
|
|
|
|
cd -- "$tmpdir/elinks"
|
|
|
|
./autogen.sh
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
../configure
|
|
|
|
make -C po
|
|
|
|
mv po/*.gmo ../po/
|
|
|
|
mv contrib/elinks.spec ../contrib/
|
|
|
|
) || exit 1
|
|
|
|
|
|
|
|
if [ -n "$docdir" ]; then
|
|
|
|
mkdir -- "$tmpdir/elinks/doc/html"
|
|
|
|
cp -r -- "$docdir"/*.html* "$tmpdir/elinks/doc/html/"
|
2007-04-22 11:01:22 -04:00
|
|
|
# mkdir doc/pdf
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
# cp "$docdir"/*.pdf doc/pdf
|
2007-04-22 11:01:22 -04:00
|
|
|
fi
|
|
|
|
|
Rewrote contrib/mkdist.
* All arguments must now be given as options.
* Documented.
* chmod +x in Git.
* Do not distribute files whose contents should depend on what the
configure script found: config.h, config.log, config.status,
features.log, Makefile.config, contrib/conv/w3m2links.awk,
contrib/lua/hooks.lua, doc/man/man1/elinks.1.
* Do not distribute other files that configure will rebuild anyway:
src/intl/gettext/ref-add.sed, src/intl/gettext/ref-del.sed.
But do distribute contrib/elinks.spec, because it specifies how
to run configure, and only the @VERSION@ varies in it.
* Do not distribute the empty directory po/.deps.
* Save the commit ID into .git/HEAD in the tar file.
* Compress the *.tar.gz and *.tar.bz2 from the same *.tar file.
* Instead of *.tar.gz.md5 and *.tar.bz2.md5, generate a *.md5 file
that contains md5sums for *.tar, *.tar.gz, and *.tar.bz2.
* Use md5sum --binary for the sake of Windows.
2007-07-19 14:46:34 -04:00
|
|
|
rm -rf -- "$tmpdir/elinks/build"
|
|
|
|
mv -- "$tmpdir/elinks" "$tmpdir/$tartopdir"
|
|
|
|
|
|
|
|
(set -e
|
|
|
|
cd -- "$tmpdir"
|
|
|
|
tar cf "$tarbasename.tar" "$tartopdir"
|
|
|
|
md5sum --binary -- "$tarbasename.tar" > "$tarbasename.md5"
|
|
|
|
bzip2 --keep -- "$tarbasename.tar"
|
|
|
|
gzip -9 -- "$tarbasename.tar"
|
|
|
|
md5sum --binary -- "$tarbasename.tar.gz" "$tarbasename.tar.bz2" >> "$tarbasename.md5"
|
|
|
|
) || exit 1
|
|
|
|
|
|
|
|
mv -- "$tmpdir/$tarbasename.tar.gz" "$outdir"
|
|
|
|
mv -- "$tmpdir/$tarbasename.tar.bz2" "$outdir"
|
|
|
|
mv -- "$tmpdir/$tarbasename.md5" "$outdir"
|
|
|
|
rm -rf -- "$tmpdir"
|