Mercurial > ecos
diff packages/ecosadmin.tcl @ 208:e0c0827131d1 ecos
Merge from eCos master repository on 2002-05-20-20:11:54-BST
| author | jlarmour |
|---|---|
| date | Mon, 20 May 2002 22:19:26 +0000 |
| parents | 0d0f03f76f6a |
| children | d2c90368aeef |
line wrap: on
line diff
--- a/packages/ecosadmin.tcl +++ b/packages/ecosadmin.tcl @@ -18,29 +18,38 @@ # A package install/uninstall tool. # #=============================================================================== -#####COPYRIGHTBEGIN#### -# -# ------------------------------------------- -# The contents of this file are subject to the Red Hat eCos Public License -# Version 1.1 (the "License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.redhat.com/ -# -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the -# License for the specific language governing rights and limitations under -# the License. -# -# The Original Code is eCos - Embedded Configurable Operating System, -# released September 30, 1998. -# -# The Initial Developer of the Original Code is Red Hat. -# Portions created by Red Hat are -# Copyright (C) 1998, 1999, 2000, 2001 Red Hat, Inc. -# All Rights Reserved. -# ------------------------------------------- -# -#####COPYRIGHTEND#### +#####ECOSGPLCOPYRIGHTBEGIN#### +# ------------------------------------------- +# This file is part of eCos, the Embedded Configurable Operating System. +# Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. +# +# eCos 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. +# +# eCos 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 eCos; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +# +# As a special exception, if other files instantiate templates or use macros +# or inline functions from this file, or you compile this file and link it +# with other works to produce a work based on this file, this file does not +# by itself cause the resulting work to be covered by the GNU General Public +# License. However the source code for this file must still be made available +# in accordance with section (3) of the GNU General Public License. +# +# This exception does not invalidate any other reasons why a work based on +# this file might be covered by the GNU General Public License. +# +# Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. +# at http://sources.redhat.com/ecos/ecos-license +# ------------------------------------------- +#####ECOSGPLCOPYRIGHTEND#### #=============================================================================== ######DESCRIPTIONBEGIN#### # @@ -133,6 +142,9 @@ namespace eval ecosadmin { variable fatal_error_handler ecosadmin::cli_fatal_error variable warning_handler ecosadmin::cli_warning variable report_handler ecosadmin::cli_report + + # Keep or remove the CVS directories? + variable keep_cvs 0 } # }}} @@ -434,6 +446,20 @@ proc ecosadmin::parse_arguments { argv0 continue } + # Check for --srcdir + if { [regexp -- {^-?-srcdir=?([ \.\\/:_a-zA-Z0-9-]*)$} $args($i) dummy match1] == 1 } { + if { $match1 == "" } { + if { $i == $argc } { + puts "ecosrelease: missing argument after --srcdir" + exit 1 + } else { + set match1 $args([incr i]) + } + } + set ecosadmin::component_repository $match1 + continue + } + # An unrecognised argument. fatal_error "invalid argument $args($i)" } @@ -654,6 +680,12 @@ proc ecosadmin::locate_files { dir { pat # Start by getting a list of all the files. set filelist [glob -nocomplain -- [file join $dir $pattern]] + if { $pattern == "*" } { + # For "everything", include ".*" files, but excluding . + # and .. directories + lappend filelist [glob -nocomplain -- [file join $dir ".\[a-zA-Z0-9\]*"]] + } + # Eliminate the pathnames from all of these files set filenames "" foreach file $filelist { @@ -693,10 +725,12 @@ proc ecosadmin::locate_subdirs { dir { p } # Get rid of the CVS directory, if any - set index [lsearch -exact $dirnames "CVS"] - if { $index != -1 } { - set dirnames [lreplace $dirnames $index $index] - } + if { $ecosadmin::keep_cvs == 0 } { + set index [lsearch -exact $dirnames "CVS"] + if { $index != -1 } { + set dirnames [lreplace $dirnames $index $index] + } + } # That should be it. return $dirnames
