From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10850 invoked from network); 26 Jul 2005 10:21:31 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 26 Jul 2005 10:21:31 -0000 Received: (qmail 2727 invoked from network); 26 Jul 2005 10:21:24 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 26 Jul 2005 10:21:24 -0000 Received: (qmail 15999 invoked by alias); 26 Jul 2005 10:21:21 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 21527 Received: (qmail 15990 invoked from network); 26 Jul 2005 10:21:21 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by sunsite.dk with SMTP; 26 Jul 2005 10:21:21 -0000 Received: (qmail 2420 invoked from network); 26 Jul 2005 10:21:20 -0000 Received: from mailhost1.csr.com (HELO MAILSWEEPER01.csr.com) (81.105.217.43) by a.mx.sunsite.dk with SMTP; 26 Jul 2005 10:21:14 -0000 Received: from exchange03.csr.com (unverified [10.100.137.60]) by MAILSWEEPER01.csr.com (Content Technologies SMTPRS 4.3.12) with ESMTP id for ; Tue, 26 Jul 2005 11:19:09 +0100 Received: from news01.csr.com ([10.103.143.38]) by exchange03.csr.com with Microsoft SMTPSVC(5.0.2195.6713); Tue, 26 Jul 2005 11:23:30 +0100 Received: from news01.csr.com (localhost.localdomain [127.0.0.1]) by news01.csr.com (8.13.1/8.12.11) with ESMTP id j6QALCTH032208 for ; Tue, 26 Jul 2005 11:21:12 +0100 Received: from csr.com (pws@localhost) by news01.csr.com (8.13.1/8.13.1/Submit) with ESMTP id j6QALB6j032205 for ; Tue, 26 Jul 2005 11:21:12 +0100 Message-Id: <200507261021.j6QALB6j032205@news01.csr.com> X-Authentication-Warning: news01.csr.com: pws owned process doing -bs To: zsh-workers@sunsite.dk Subject: Re: PATCH: Re: Implementation of simple newuser module (how to start?) In-reply-to: <200507250936.j6P9aVAR005452@news01.csr.com> References: <200507201401.j6KE1k5i004733@news01.csr.com> <200507201804.j6KI474K004991@news01.csr.com> <1050723051057.ZM10317@candle.brasslantern.com> <200507250936.j6P9aVAR005452@news01.csr.com> Date: Tue, 26 Jul 2005 11:21:11 +0100 From: Peter Stephenson X-OriginalArrivalTime: 26 Jul 2005 10:23:30.0310 (UTC) FILETIME=[11834A60:01C591CC] X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.0.4 Peter Stephenson wrote: > Bart Schaefer wrote: > > } +autoload -U zsh-install-newuser > > } +zsh-install-newuser > > > > I suggest that instead this be: > > > > autoload -U +X zsh-install-newuser && zsh-install-newuser > > > > That is, don't execute the function if it can't be autoloaded, and don't > > redefine it if it is already defined. > > But autoload +X returns false if the function was already defined, so it > wouldn't execute the function in that case. The following takes account of that. > I have belatedly realised that zsh-newuser-install would probably be a > better name, since if the function gets split up into smaller functions > it gives a namespace. I'll change this at the same time. I've made the function a bit safer, so that if it gets run automatically it doesn't trash .zshrc. In future it may well be smart enough to be able to update existing files, in which case the test won't be appropriate. Index: Functions/Newuser/.distfiles =================================================================== RCS file: /cvsroot/zsh/zsh/Functions/Newuser/.distfiles,v retrieving revision 1.1 diff -u -r1.1 .distfiles --- Functions/Newuser/.distfiles 21 Jul 2005 13:45:27 -0000 1.1 +++ Functions/Newuser/.distfiles 26 Jul 2005 10:18:55 -0000 @@ -1,4 +1,4 @@ DISTFILES_SRC=' .distfiles -zsh-install-newuser +zsh-newuser-install ' Index: Functions/Newuser/zsh-install-newuser =================================================================== RCS file: Functions/Newuser/zsh-install-newuser diff -N Functions/Newuser/zsh-install-newuser --- Functions/Newuser/zsh-install-newuser 20 Jul 2005 18:08:53 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,11 +0,0 @@ -# Function to install startup files for a new user. -# This dummy version simply creates a new .zshrc with a comment. -# FIXME: we don't want to distribute a file that does that, it -# would be preferable to do nothing at all. - -# Sanitize environment. -emulate -L zsh - -echo "# Created by newuser for $ZSH_VERSION" >${ZDOTDIR:-$HOME}/.zshrc - -unfunction zsh-install-newuser Index: Functions/Newuser/zsh-newuser-install =================================================================== RCS file: Functions/Newuser/zsh-newuser-install diff -N Functions/Newuser/zsh-newuser-install --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Functions/Newuser/zsh-newuser-install 26 Jul 2005 10:18:55 -0000 @@ -0,0 +1,23 @@ +# Function to install startup files for a new user. +# This dummy version simply creates a new .zshrc with a comment. +# FIXME: we don't want to distribute a file that does that, it +# would be preferable to do nothing at all. + +# Sanitize environment. +emulate -L zsh + +local zd=${ZDOTDIR:-$HOME} + +# The zsh/newuser module already tests for the following, so this test only +# triggers if zsh-newuser-install is run by hand. +# +# In future we may want to use this mechanism to update startup files. +if [[ -e $zd/.zshenv || -e $zd/.zprofile || -e $zd/.zshrc || -e $zs/.zlogin ]] +then + print "zsh-newuser-install: startup files exist, aborting" >&2 + return 1 +fi + +echo "# Created by newuser for $ZSH_VERSION" >$zd/.zshrc + +unfunction zsh-newuser-install Index: Scripts/newuser =================================================================== RCS file: /cvsroot/zsh/zsh/Scripts/newuser,v retrieving revision 1.1 diff -u -r1.1 newuser --- Scripts/newuser 20 Jul 2005 18:08:53 -0000 1.1 +++ Scripts/newuser 26 Jul 2005 10:18:55 -0000 @@ -2,5 +2,7 @@ # no startup files. See the documentation for the zsh/newuser # module in zshmodules(1). -autoload -U zsh-install-newuser -zsh-install-newuser +if functions zsh-newuser-install >/dev/null 2>&1 || + autoload -U +X zsh-newuser-install; then + zsh-newuser-install +fi -- Peter Stephenson Software Engineer CSR PLC, Churchill House, Cambridge Business Park, Cowley Road Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070 ********************************************************************** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. **********************************************************************