annotate build-aux/gnupload @ 17362:7a2e583edf71

check for (erroneous) ftp-upload.gnu.org
author Karl Berry <karl@freefriends.org>
date Tue, 19 Mar 2013 10:47:12 -0700
parents e542fd46ad6f
children 344018b6e5d7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
1 #!/bin/sh
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
2 # Sign files and upload them.
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
3
17362
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
4 scriptversion=2013-03-19.17; # UTC
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
5
17249
e542fd46ad6f maint: update all copyright year number ranges
Eric Blake <eblake@redhat.com>
parents: 17204
diff changeset
6 # Copyright (C) 2004-2013 Free Software Foundation, Inc.
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
7 #
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
8 # This program is free software; you can redistribute it and/or modify
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
9 # it under the terms of the GNU General Public License as published by
11576
79df2eaa4395 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11552
diff changeset
10 # the Free Software Foundation; either version 2, or (at your option)
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
11 # any later version.
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
12 #
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
13 # This program is distributed in the hope that it will be useful,
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
16 # GNU General Public License for more details.
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
17 #
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
18 # You should have received a copy of the GNU General Public License
9640
4bd575733685 autoupdate
Karl Berry <karl@freefriends.org>
parents: 9530
diff changeset
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
20
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
21 # Originally written by Alexandre Duret-Lutz <adl@gnu.org>.
16283
ceb1c4a29f1d gnupload: we hold the master copy of this script now
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16248
diff changeset
22 # The master copy of this file is maintained in the gnulib Git repository.
ceb1c4a29f1d gnupload: we hold the master copy of this script now
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16248
diff changeset
23 # Please send bug reports and feature requests to bug-gnulib@gnu.org.
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
24
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
25 set -e
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
26
9530
65947e09986e * build-aux/gnupload (GPG): Don't hard-code patch to gpg binary.
Jim Meyering <meyering@redhat.com>
parents: 9080
diff changeset
27 GPG='gpg --batch --no-tty'
11271
b974ec85b38c autoupdate
Karl Berry <karl@freefriends.org>
parents: 11264
diff changeset
28 conffile=.gnuploadrc
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
29 to=
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
30 dry_run=false
16901
1b163013d9bf implement --replace for ftp-upload protocol v1.2
Karl Berry <karl@freefriends.org>
parents: 16690
diff changeset
31 replace=
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
32 symlink_files=
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
33 delete_files=
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
34 delete_symlinks=
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
35 collect_var=
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
36 dbg=
13369
fe2e7d7de0d4 autoupdate
Karl Berry <karl@freefriends.org>
parents: 13276
diff changeset
37 nl='
fe2e7d7de0d4 autoupdate
Karl Berry <karl@freefriends.org>
parents: 13276
diff changeset
38 '
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
39
12852
b2436031626f -mautoupdate
Karl Berry <karl@freefriends.org>
parents: 12825
diff changeset
40 usage="Usage: $0 [OPTION]... [CMD] FILE... [[CMD] FILE...]
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
41
17362
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
42 Sign all FILES, and process them at the destinations specified with --to.
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
43 If CMD is not given, it defaults to uploading. See examples below.
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
44
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
45 Commands:
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
46 --delete delete FILES from destination
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
47 --symlink create symbolic links
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
48 --rmsymlink remove symbolic links
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
49 -- treat the remaining arguments as files to upload
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
50
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
51 Options:
17362
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
52 --to DEST specify a destination DEST for FILES
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
53 (multiple --to options are allowed)
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
54 --user NAME sign with key NAME
16901
1b163013d9bf implement --replace for ftp-upload protocol v1.2
Karl Berry <karl@freefriends.org>
parents: 16690
diff changeset
55 --replace allow replacements of existing files
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
56 --symlink-regex[=EXPR] use sed script EXPR to compute symbolic link names
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
57 --dry-run do nothing, show what would have been done
16901
1b163013d9bf implement --replace for ftp-upload protocol v1.2
Karl Berry <karl@freefriends.org>
parents: 16690
diff changeset
58 (including the constructed directive file)
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
59 --version output version information and exit
17362
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
60 --help print this help text and exit
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
61
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
62 If --symlink-regex is given without EXPR, then the link target name
16248
ed875a30bb12 autoupdate
Karl Berry <karl@freefriends.org>
parents: 13369
diff changeset
63 is created by replacing the version information with '-latest', e.g.:
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
64 foo-1.3.4.tar.gz -> foo-latest.tar.gz
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
65
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
66 Recognized destinations are:
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
67 alpha.gnu.org:DIRECTORY
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
68 savannah.gnu.org:DIRECTORY
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
69 savannah.nongnu.org:DIRECTORY
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
70 ftp.gnu.org:DIRECTORY
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
71 build directive files and upload files by FTP
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
72 download.gnu.org.ua:{alpha|ftp}/DIRECTORY
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
73 build directive files and upload files by SFTP
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
74 [user@]host:DIRECTORY upload files with scp
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
75
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
76 Options and commands are applied in order. If the file $conffile exists
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
77 in the current working directory, its contents are prepended to the
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
78 actual command line options. Use this to keep your defaults. Comments
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
79 (#) and empty lines in $conffile are allowed.
10805
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
80
17362
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
81 <http://www.gnu.org/prep/maintain/html_node/Automated-FTP-Uploads.html>
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
82 gives some further background.
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
83
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
84 Examples:
12379
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
85 1. Upload foobar-1.0.tar.gz to ftp.gnu.org:
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
86 gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
87
12379
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
88 2. Upload foobar-1.0.tar.gz and foobar-1.0.tar.xz to ftp.gnu.org:
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
89 gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz foobar-1.0.tar.xz
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
90
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
91 3. Same as above, and also create symbolic links to foobar-latest.tar.*:
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
92 gnupload --to ftp.gnu.org:foobar \\
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
93 --symlink-regex \\
12379
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
94 foobar-1.0.tar.gz foobar-1.0.tar.xz
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
95
12379
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
96 4. Upload foobar-0.9.90.tar.gz to two sites:
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
97 gnupload --to alpha.gnu.org:foobar \\
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
98 --to sources.redhat.com:~ftp/pub/foobar \\
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
99 foobar-0.9.90.tar.gz
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
100
12379
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
101 5. Delete oopsbar-0.9.91.tar.gz and upload foobar-0.9.91.tar.gz
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
102 (the -- terminates the list of files to delete):
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
103 gnupload --to alpha.gnu.org:foobar \\
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
104 --to sources.redhat.com:~ftp/pub/foobar \\
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
105 --delete oopsbar-0.9.91.tar.gz \\
a26918b40a9a autoupdate
Karl Berry <karl@freefriends.org>
parents: 11576
diff changeset
106 -- foobar-0.9.91.tar.gz
11104
3b51d8a5b78e autoupdate
Karl Berry <karl@freefriends.org>
parents: 10805
diff changeset
107
17362
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
108 gnupload executes a program ncftpput to do the transfers; if you don't
12504
017cf2a9b0ce autoupdate
Karl Berry <karl@freefriends.org>
parents: 12379
diff changeset
109 happen to have an ncftp package installed, the ncftpput-ftp script in
017cf2a9b0ce autoupdate
Karl Berry <karl@freefriends.org>
parents: 12379
diff changeset
110 the build-aux/ directory of the gnulib package
017cf2a9b0ce autoupdate
Karl Berry <karl@freefriends.org>
parents: 12379
diff changeset
111 (http://savannah.gnu.org/projects/gnulib) may serve as a replacement.
017cf2a9b0ce autoupdate
Karl Berry <karl@freefriends.org>
parents: 12379
diff changeset
112
16283
ceb1c4a29f1d gnupload: we hold the master copy of this script now
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16248
diff changeset
113 Send patches and bug reports to <bug-gnulib@gnu.org>."
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
114
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
115 # Read local configuration file
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
116 if test -r "$conffile"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
117 echo "$0: Reading configuration file $conffile"
13369
fe2e7d7de0d4 autoupdate
Karl Berry <karl@freefriends.org>
parents: 13276
diff changeset
118 conf=`sed 's/#.*$//;/^$/d' "$conffile" | tr "\015$nl" ' '`
fe2e7d7de0d4 autoupdate
Karl Berry <karl@freefriends.org>
parents: 13276
diff changeset
119 eval set x "$conf \"\$@\""
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
120 shift
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
121 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
122
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
123 while test -n "$1"; do
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
124 case $1 in
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
125 -*)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
126 collect_var=
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
127 case $1 in
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
128 --help)
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
129 echo "$usage"
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
130 exit $?
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
131 ;;
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
132 --to)
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
133 if test -z "$2"; then
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
134 echo "$0: Missing argument for --to" 1>&2
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
135 exit 1
17362
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
136 elif echo "$2" | grep 'ftp-upload\.gnu\.org' >/dev/null; then
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
137 echo "$0: Use ftp.gnu.org:PKGNAME or alpha.gnu.org:PKGNAME" >&2
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
138 echo "$0: for the destination, not ftp-upload.gnu.org (which" >&2
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
139 echo "$0: is used for direct ftp uploads, not with gnupload)." >&2
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
140 echo "$0: See --help and its examples if need be." >&2
7a2e583edf71 check for (erroneous) ftp-upload.gnu.org
Karl Berry <karl@freefriends.org>
parents: 17249
diff changeset
141 exit 1
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
142 else
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
143 to="$to $2"
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
144 shift
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
145 fi
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
146 ;;
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
147 --user)
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
148 if test -z "$2"; then
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
149 echo "$0: Missing argument for --user" 1>&2
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
150 exit 1
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
151 else
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
152 GPG="$GPG --local-user $2"
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
153 shift
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
154 fi
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
155 ;;
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
156 --delete)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
157 collect_var=delete_files
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
158 ;;
16901
1b163013d9bf implement --replace for ftp-upload protocol v1.2
Karl Berry <karl@freefriends.org>
parents: 16690
diff changeset
159 --replace)
1b163013d9bf implement --replace for ftp-upload protocol v1.2
Karl Berry <karl@freefriends.org>
parents: 16690
diff changeset
160 replace="replace: true"
1b163013d9bf implement --replace for ftp-upload protocol v1.2
Karl Berry <karl@freefriends.org>
parents: 16690
diff changeset
161 ;;
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
162 --rmsymlink)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
163 collect_var=delete_symlinks
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
164 ;;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
165 --symlink-regex=*)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
166 symlink_expr=`expr "$1" : '[^=]*=\(.*\)'`
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
167 ;;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
168 --symlink-regex)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
169 symlink_expr='s|-[0-9][0-9\.]*\(-[0-9][0-9]*\)\{0,1\}\.|-latest.|'
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
170 ;;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
171 --symlink)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
172 collect_var=symlink_files
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
173 ;;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
174 --dry-run|-n)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
175 dry_run=:
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
176 ;;
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
177 --version)
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
178 echo "gnupload $scriptversion"
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
179 exit $?
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
180 ;;
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
181 --)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
182 shift
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
183 break
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
184 ;;
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
185 -*)
16248
ed875a30bb12 autoupdate
Karl Berry <karl@freefriends.org>
parents: 13369
diff changeset
186 echo "$0: Unknown option '$1', try '$0 --help'" 1>&2
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
187 exit 1
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
188 ;;
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
189 esac
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
190 ;;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
191 *)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
192 if test -z "$collect_var"; then
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
193 break
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
194 else
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
195 eval "$collect_var=\"\$$collect_var $1\""
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
196 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
197 ;;
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
198 esac
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
199 shift
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
200 done
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
201
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
202 dprint()
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
203 {
13276
4c9bf78586ca autoupdate
Karl Berry <karl@freefriends.org>
parents: 12858
diff changeset
204 echo "Running $* ..."
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
205 }
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
206
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
207 if $dry_run; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
208 dbg=dprint
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
209 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
210
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
211 if test -z "$to"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
212 echo "$0: Missing destination sites" >&2
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
213 exit 1
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
214 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
215
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
216 if test -n "$symlink_files"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
217 x=`echo "$symlink_files" | sed 's/[^ ]//g;s/ //g'`
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
218 if test -n "$x"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
219 echo "$0: Odd number of symlink arguments" >&2
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
220 exit 1
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
221 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
222 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
223
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
224 if test $# = 0; then
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
225 if test -z "${symlink_files}${delete_files}${delete_symlinks}"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
226 echo "$0: No file to upload" 1>&2
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
227 exit 1
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
228 fi
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
229 else
10805
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
230 # Make sure all files exist. We don't want to ask
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
231 # for the passphrase if the script will fail.
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
232 for file
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
233 do
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
234 if test ! -f $file; then
16248
ed875a30bb12 autoupdate
Karl Berry <karl@freefriends.org>
parents: 13369
diff changeset
235 echo "$0: Cannot find '$file'" 1>&2
10805
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
236 exit 1
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
237 elif test -n "$symlink_expr"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
238 linkname=`echo $file | sed "$symlink_expr"`
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
239 if test -z "$linkname"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
240 echo "$0: symlink expression produces empty results" >&2
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
241 exit 1
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
242 elif test "$linkname" = $file; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
243 echo "$0: symlink expression does not alter file name" >&2
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
244 exit 1
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
245 fi
10805
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
246 fi
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
247 done
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
248 fi
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
249
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
250 # Make sure passphrase is not exported in the environment.
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
251 unset passphrase
17204
69d4aaeb9067 gnupload: Work with GnuPG using gpg-agent (for smartcards).
Simon Josefsson <simon@josefsson.org>
parents: 16902
diff changeset
252 unset passphrase_fd_0
69d4aaeb9067 gnupload: Work with GnuPG using gpg-agent (for smartcards).
Simon Josefsson <simon@josefsson.org>
parents: 16902
diff changeset
253 GNUPGHOME=${GNUPGHOME:-$HOME/.gnupg}
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
254
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
255 # Reset PATH to be sure that echo is a built-in. We will later use
16248
ed875a30bb12 autoupdate
Karl Berry <karl@freefriends.org>
parents: 13369
diff changeset
256 # 'echo $passphrase' to output the passphrase, so it is important that
ed875a30bb12 autoupdate
Karl Berry <karl@freefriends.org>
parents: 13369
diff changeset
257 # it is a built-in (third-party programs tend to appear in 'ps'
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
258 # listings with their arguments...).
16248
ed875a30bb12 autoupdate
Karl Berry <karl@freefriends.org>
parents: 13369
diff changeset
259 # Remember this script runs with 'set -e', so if echo is not built-in
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
260 # it will exit now.
17204
69d4aaeb9067 gnupload: Work with GnuPG using gpg-agent (for smartcards).
Simon Josefsson <simon@josefsson.org>
parents: 16902
diff changeset
261 if $dry_run || grep -q "^use-agent" $GNUPGHOME/gpg.conf; then :; else
16902
1cdf36c56e21 do not ask for gpg pw with --dry-run
Karl Berry <karl@freefriends.org>
parents: 16901
diff changeset
262 PATH=/empty echo -n "Enter GPG passphrase: "
1cdf36c56e21 do not ask for gpg pw with --dry-run
Karl Berry <karl@freefriends.org>
parents: 16901
diff changeset
263 stty -echo
1cdf36c56e21 do not ask for gpg pw with --dry-run
Karl Berry <karl@freefriends.org>
parents: 16901
diff changeset
264 read -r passphrase
1cdf36c56e21 do not ask for gpg pw with --dry-run
Karl Berry <karl@freefriends.org>
parents: 16901
diff changeset
265 stty echo
1cdf36c56e21 do not ask for gpg pw with --dry-run
Karl Berry <karl@freefriends.org>
parents: 16901
diff changeset
266 echo
17204
69d4aaeb9067 gnupload: Work with GnuPG using gpg-agent (for smartcards).
Simon Josefsson <simon@josefsson.org>
parents: 16902
diff changeset
267 passphrase_fd_0="--passphrase-fd 0"
16902
1cdf36c56e21 do not ask for gpg pw with --dry-run
Karl Berry <karl@freefriends.org>
parents: 16901
diff changeset
268 fi
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
269
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
270 if test $# -ne 0; then
10805
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
271 for file
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
272 do
13276
4c9bf78586ca autoupdate
Karl Berry <karl@freefriends.org>
parents: 12858
diff changeset
273 echo "Signing $file ..."
10805
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
274 rm -f $file.sig
17204
69d4aaeb9067 gnupload: Work with GnuPG using gpg-agent (for smartcards).
Simon Josefsson <simon@josefsson.org>
parents: 16902
diff changeset
275 echo "$passphrase" | $dbg $GPG $passphrase_fd_0 -ba -o $file.sig $file
10805
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
276 done
ba850053edd1 autoupdate
Karl Berry <karl@freefriends.org>
parents: 10300
diff changeset
277 fi
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
278
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
279
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
280 # mkdirective DESTDIR BASE FILE STMT
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
281 # Arguments: See upload, below
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
282 mkdirective ()
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
283 {
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
284 stmt="$4"
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
285 if test -n "$3"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
286 stmt="
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
287 filename: $3$stmt"
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
288 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
289
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
290 cat >${2}.directive<<EOF
16901
1b163013d9bf implement --replace for ftp-upload protocol v1.2
Karl Berry <karl@freefriends.org>
parents: 16690
diff changeset
291 version: 1.2
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
292 directory: $1
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
293 comment: gnupload v. $scriptversion$stmt
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
294 EOF
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
295 if $dry_run; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
296 echo "File ${2}.directive:"
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
297 cat ${2}.directive
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
298 echo "File ${2}.directive:" | sed 's/./-/g'
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
299 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
300 }
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
301
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
302 mksymlink ()
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
303 {
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
304 while test $# -ne 0
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
305 do
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
306 echo "symlink: $1 $2"
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
307 shift
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
308 shift
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
309 done
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
310 }
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
311
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
312 # upload DEST DESTDIR BASE FILE STMT FILES
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
313 # Arguments:
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
314 # DEST Destination site;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
315 # DESTDIR Destination directory;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
316 # BASE Base name for the directive file;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
317 # FILE Name of the file to distribute (may be empty);
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
318 # STMT Additional statements for the directive file;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
319 # FILES List of files to upload.
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
320 upload ()
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
321 {
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
322 dest=$1
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
323 destdir=$2
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
324 base=$3
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
325 file=$4
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
326 stmt=$5
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
327 files=$6
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
328
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
329 rm -f $base.directive $base.directive.asc
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
330 case $dest in
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
331 alpha.gnu.org:*)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
332 mkdirective "$destdir" "$base" "$file" "$stmt"
17204
69d4aaeb9067 gnupload: Work with GnuPG using gpg-agent (for smartcards).
Simon Josefsson <simon@josefsson.org>
parents: 16902
diff changeset
333 echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
334 $dbg ncftpput ftp-upload.gnu.org /incoming/alpha $files $base.directive.asc
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
335 ;;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
336 ftp.gnu.org:*)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
337 mkdirective "$destdir" "$base" "$file" "$stmt"
17204
69d4aaeb9067 gnupload: Work with GnuPG using gpg-agent (for smartcards).
Simon Josefsson <simon@josefsson.org>
parents: 16902
diff changeset
338 echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
339 $dbg ncftpput ftp-upload.gnu.org /incoming/ftp $files $base.directive.asc
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
340 ;;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
341 savannah.gnu.org:*)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
342 if test -z "$files"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
343 echo "$0: warning: standalone directives not applicable for $dest" >&2
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
344 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
345 $dbg ncftpput savannah.gnu.org /incoming/savannah/$destdir $files
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
346 ;;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
347 savannah.nongnu.org:*)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
348 if test -z "$files"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
349 echo "$0: warning: standalone directives not applicable for $dest" >&2
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
350 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
351 $dbg ncftpput savannah.nongnu.org /incoming/savannah/$destdir $files
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
352 ;;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
353 download.gnu.org.ua:alpha/*|download.gnu.org.ua:ftp/*)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
354 destdir_p1=`echo "$destdir" | sed 's,^[^/]*/,,'`
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
355 destdir_topdir=`echo "$destdir" | sed 's,/.*,,'`
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
356 mkdirective "$destdir_p1" "$base" "$file" "$stmt"
17204
69d4aaeb9067 gnupload: Work with GnuPG using gpg-agent (for smartcards).
Simon Josefsson <simon@josefsson.org>
parents: 16902
diff changeset
357 echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
358 for f in $files $base.directive.asc
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
359 do
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
360 echo put $f
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
361 done | $dbg sftp -b - puszcza.gnu.org.ua:/incoming/$destdir_topdir
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
362 ;;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
363 /*)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
364 dest_host=`echo "$dest" | sed 's,:.*,,'`
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
365 mkdirective "$destdir" "$base" "$file" "$stmt"
17204
69d4aaeb9067 gnupload: Work with GnuPG using gpg-agent (for smartcards).
Simon Josefsson <simon@josefsson.org>
parents: 16902
diff changeset
366 echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
367 $dbg cp $files $base.directive.asc $dest_host
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
368 ;;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
369 *)
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
370 if test -z "$files"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
371 echo "$0: warning: standalone directives not applicable for $dest" >&2
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
372 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
373 $dbg scp $files $dest
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
374 ;;
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
375 esac
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
376 rm -f $base.directive $base.directive.asc
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
377 }
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
378
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
379 #####
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
380 # Process any standalone directives
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
381 stmt=
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
382 if test -n "$symlink_files"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
383 stmt="$stmt
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
384 `mksymlink $symlink_files`"
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
385 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
386
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
387 for file in $delete_files
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
388 do
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
389 stmt="$stmt
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
390 archive: $file"
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
391 done
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
392
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
393 for file in $delete_symlinks
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
394 do
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
395 stmt="$stmt
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
396 rmsymlink: $file"
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
397 done
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
398
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
399 if test -n "$stmt"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
400 for dest in $to
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
401 do
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
402 destdir=`echo $dest | sed 's/[^:]*://'`
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
403 upload "$dest" "$destdir" "`hostname`-$$" "" "$stmt"
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
404 done
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
405 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
406
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
407 # Process actual uploads
9021
1ed1930f730a Sync from Automake.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7637
diff changeset
408 for dest in $to
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
409 do
9021
1ed1930f730a Sync from Automake.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7637
diff changeset
410 for file
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
411 do
13276
4c9bf78586ca autoupdate
Karl Berry <karl@freefriends.org>
parents: 12858
diff changeset
412 echo "Uploading $file to $dest ..."
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
413 stmt=
16901
1b163013d9bf implement --replace for ftp-upload protocol v1.2
Karl Berry <karl@freefriends.org>
parents: 16690
diff changeset
414 #
1b163013d9bf implement --replace for ftp-upload protocol v1.2
Karl Berry <karl@freefriends.org>
parents: 16690
diff changeset
415 # allowing file replacement is all or nothing.
1b163013d9bf implement --replace for ftp-upload protocol v1.2
Karl Berry <karl@freefriends.org>
parents: 16690
diff changeset
416 if test -n "$replace"; then stmt="$stmt
1b163013d9bf implement --replace for ftp-upload protocol v1.2
Karl Berry <karl@freefriends.org>
parents: 16690
diff changeset
417 $replace"
1b163013d9bf implement --replace for ftp-upload protocol v1.2
Karl Berry <karl@freefriends.org>
parents: 16690
diff changeset
418 fi
1b163013d9bf implement --replace for ftp-upload protocol v1.2
Karl Berry <karl@freefriends.org>
parents: 16690
diff changeset
419 #
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
420 files="$file $file.sig"
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
421 destdir=`echo $dest | sed 's/[^:]*://'`
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
422 if test -n "$symlink_expr"; then
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
423 linkname=`echo $file | sed "$symlink_expr"`
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
424 stmt="$stmt
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
425 symlink: $file $linkname
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
426 symlink: $file.sig $linkname.sig"
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
427 fi
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
428 upload "$dest" "$destdir" "$file" "$file" "$stmt" "$files"
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
429 done
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
430 done
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
431
11264
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
432 exit 0
d492cd602d92 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11104
diff changeset
433
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
434 # Local variables:
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
435 # eval: (add-hook 'write-file-hooks 'time-stamp)
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
436 # time-stamp-start: "scriptversion="
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
437 # time-stamp-format: "%:y-%02m-%02d.%02H"
11552
a12fc7e93275 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11271
diff changeset
438 # time-stamp-time-zone: "UTC"
a12fc7e93275 autoupdate
Karl Berry <karl@freefriends.org>
parents: 11271
diff changeset
439 # time-stamp-end: "; # UTC"
7178
e8fe34306afa Add gnupload module.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
440 # End: