[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnupload
From: |
Simon Josefsson |
Subject: |
gnupload |
Date: |
Fri, 14 Jul 2006 12:43:16 +0200 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.50 (gnu/linux) |
Hi! I'm using gnupload in several projects, would it be possible to
move this from coreutils to gnulib?
/Simon
Index: ChangeLog
===================================================================
RCS file: /sources/gnulib/gnulib/ChangeLog,v
retrieving revision 1.556
diff -u -p -r1.556 ChangeLog
--- ChangeLog 12 Jul 2006 20:14:15 -0000 1.556
+++ ChangeLog 14 Jul 2006 10:42:44 -0000
@@ -1,3 +1,12 @@
+2006-07-14 Simon Josefsson <address@hidden>
+
+ * modules/gnupload: New file.
+
+ * build-aux/gnupload: New file.
+
+ * MODULES.html.sh (Other tools): New section, add gnupload.
+ (Support for building documentation): Fix section name.
+
2006-07-12 Simon Josefsson <address@hidden>
* modules/gendocs (License): Fix license, approved by Karl.
Index: MODULES.html.sh
===================================================================
RCS file: /sources/gnulib/gnulib/MODULES.html.sh,v
retrieving revision 1.123
diff -u -p -r1.123 MODULES.html.sh
--- MODULES.html.sh 12 Jul 2006 15:19:16 -0000 1.123
+++ MODULES.html.sh 14 Jul 2006 10:42:44 -0000
@@ -2069,13 +2069,21 @@ func_all_modules ()
func_end_table
element="Support for building documentation"
- func_section_wrap build_lib
+ func_section_wrap build_doc
func_wrap H2
func_echo "$element"
func_module fdl
func_module gendocs
func_end_table
+
+ element="Other tools"
+ func_section_wrap tools
+ func_wrap H2
+ func_echo "$element"
+
+ func_module gnupload
+ func_end_table
}
Index: config/srclist.txt
===================================================================
RCS file: /sources/gnulib/gnulib/config/srclist.txt,v
retrieving revision 1.128
diff -u -p -r1.128 srclist.txt
--- config/srclist.txt 12 Jul 2006 07:27:31 -0000 1.128
+++ config/srclist.txt 14 Jul 2006 10:42:44 -0000
@@ -287,6 +287,7 @@ $LIBCSRC/time/mktime.c lib gpl
$COREUTILS/lib/setenv.c lib gpl
$COREUTILS/lib/setenv.h lib gpl
$COREUTILS/lib/unsetenv.c lib gpl
+$COREUTILS/gnupload build-aux
$LIBTOOL/libltdl/argz.c lib gpl
$LIBTOOL/libltdl/argz_.h lib gpl
Index: config/ChangeLog
===================================================================
RCS file: /sources/gnulib/gnulib/config/ChangeLog,v
retrieving revision 1.143
diff -u -p -r1.143 ChangeLog
--- config/ChangeLog 15 Jun 2006 12:00:11 -0000 1.143
+++ config/ChangeLog 14 Jul 2006 10:42:44 -0000
@@ -1,3 +1,7 @@
+2006-07-14 Simon Josefsson <address@hidden>
+
+ * srclist.txt: Add gnupload.
+
2006-06-15 Eric Blake <address@hidden>
* srclist.txt (ssize_t.m4): Lose sync.
Index: modules/gnupload
===================================================================
RCS file: modules/gnupload
diff -N modules/gnupload
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ modules/gnupload 14 Jul 2006 10:42:44 -0000
@@ -0,0 +1,21 @@
+Description:
+Upload PGP signed files to gnu.org.
+See http://www.gnu.org/prep/maintain/html_node/Automated-FTP-Uploads.html
+for more information.
+
+Files:
+build-aux/gnupload
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+
+Include:
+
+License:
+GPLed build tool
+
+Maintainer:
+coreutils
Index: build-aux/gnupload
===================================================================
RCS file: build-aux/gnupload
diff -N build-aux/gnupload
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ build-aux/gnupload 14 Jul 2006 10:42:44 -0000
@@ -0,0 +1,176 @@
+#!/bin/sh
+# Sign files and upload them.
+
+scriptversion=2006-05-20.00
+
+# Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+# Originally written by Alexandre Duret-Lutz <address@hidden>.
+
+set -e
+
+GPG='/usr/bin/gpg --batch --no-tty'
+to=
+
+usage="Usage: $0 [OPTIONS]... FILES...
+
+Sign all FILES, and upload them to selected destinations.
+
+Options:
+ --help print this help text and exit
+ --to DEST specify one destination for FILES
+ (multiple --to options are allowed)
+ --user NAME sign with key NAME
+ --version output version information and exit
+
+Recognized destinations are:
+ alpha.gnu.org:DIRECTORY
+ savannah.gnu.org:DIRECTORY
+ savannah.nongnu.org:DIRECTORY
+ ftp.gnu.org:DIRECTORY
+ build directive files and upload files by FTP
+ address@hidden:DIRECTORY upload files with scp
+
+Example:
+ gnupload --to sources.redhat.com:~ftp/pub/automake \\
+ ""--to alpha.gnu.org:automake \\
+ automake-1.8.2b.tar.gz automake-1.8.2b.tar.bz2
+
+Report bugs to <address@hidden>.
+Send patches to <address@hidden>."
+
+while test -n "$1"; do
+ case $1 in
+ --help)
+ echo "$usage"
+ exit $?
+ ;;
+ --to)
+ if test -z "$2"; then
+ echo "$0: Missing argument for --to" 1>&2
+ exit 1
+ else
+ to="$to $2"
+ shift 2
+ fi
+ ;;
+ --user)
+ if test -z "$2"; then
+ echo "$0: Missing argument for --user" 1>&2
+ exit 1
+ else
+ GPG="$GPG --local-user $2"
+ shift 2
+ fi
+ ;;
+ --version)
+ echo "gnupload $scriptversion"
+ exit $?
+ ;;
+ -*)
+ echo "$0: Unknown option \`$1', try \`$0 --help'" 1>&2
+ exit 1
+ ;;
+ *)
+ break
+ ;;
+ esac
+done
+
+if test $# = 0; then
+ echo "$0: No file to upload" 1>&2
+ exit 1
+else
+ :
+fi
+
+# Make sure all files exist. We don't want to ask
+# for the passphrase if the script will fail.
+for file;
+do
+ if test ! -f $file; then
+ echo "$0: Cannot find \`$file'" 1>&2
+ exit 1
+ else
+ :
+ fi
+done
+
+# Make sure passphrase is not exported in the environment.
+unset passphrase
+
+# Reset PATH to be sure that echo is a built-in. We will later use
+# `echo $passphrase' to output the passphrase, so it is important that
+# it is a built-in (third-party programs tend to appear in `ps'
+# listings with their arguments...).
+# Remember this script runs with `set -e', so if echo is not built-in
+# it will exit now.
+PATH=/empty echo -n "Enter GPG passphrase: "
+stty -echo
+read -r passphrase
+stty echo
+echo
+
+for file;
+do
+ echo "Signing $file..."
+ rm -f $file.sig
+ echo $passphrase | $GPG --passphrase-fd 0 -ba -o $file.sig $file
+done
+
+for dest in $to;
+do
+ for file;
+ do
+ echo "Uploading $file to $dest..."
+ files="$file $file.sig"
+ destdir=`echo $dest | sed 's/[^:]*://'`
+ case $dest in
+ alpha.gnu.org:*)
+ rm -f $file.directive $file.directive.asc
+ echo directory: $destdir >$file.directive
+ echo "$passphrase" | $GPG --passphrase-fd 0 --clearsign $file.directive
+ ncftpput ftp-upload.gnu.org /incoming/alpha $files $file.directive.asc
+ rm -f $file.directive $file.directive.asc
+ ;;
+ ftp.gnu.org:*)
+ rm -f $file.directive $file.directive.asc
+ echo directory: $destdir >$file.directive
+ echo "$passphrase" | $GPG --passphrase-fd 0 --clearsign $file.directive
+ ncftpput ftp-upload.gnu.org /incoming/ftp $files $file.directive.asc
+ rm -f $file.directive $file.directive.asc
+ ;;
+ savannah.gnu.org:*)
+ ncftpput savannah.gnu.org /incoming/savannah/$destdir $files
+ ;;
+ savannah.nongnu.org:*)
+ ncftpput savannah.nongnu.org /incoming/savannah/$destdir $files
+ ;;
+ *)
+ scp $files $dest
+ ;;
+ esac
+ done
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
- gnupload,
Simon Josefsson <=