OSSP CVS Repository

ossp - Check-in [179]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 179
Date: 2000-Nov-28 20:58:58 (local)
2000-Nov-28 19:58:58 (UTC)
User:rse
Branch:
Comment: *** empty log message ***
Tickets:
Inspections:
Files:
ossp-pkg/shtool/ChangeLog      1.136 -> 1.137     5 inserted, 0 deleted
ossp-pkg/shtool/sh.mkdir      added-> 1.13
ossp-pkg/shtool/sh.mkln      added-> 1.9
ossp-pkg/shtool/sh.path      1.16 -> 1.17     5 inserted, 5 deleted
ossp-pkg/shtool/sh.tarball      1.11 -> 1.12     1 inserted, 1 deleted

ossp-pkg/shtool/ChangeLog 1.136 -> 1.137

--- ChangeLog    2000/11/18 16:46:09     1.136
+++ ChangeLog    2000/11/29 19:58:58     1.137
@@ -11,6 +11,11 @@
  
  Changes between 1.5.1 and 1.5.2 (06-Jul-2000 to 18-Nov-2000):
 
+   *) Replaced a few too conservative `if [..] && [..]' with the faster
+      but still portable `if [.. -a ..]'. Only make sure that `-a' and `-o'
+      are not mixed in a single test (because this is unportable).
+      [Ralf S. Engelschall]
+
    *) Fixed `shtool install': the default for option -m is 0755 in
       order to be consistent with the semantics of original BSD and 
       GNU install commands. 


ossp-pkg/shtool/sh.mkdir -> 1.13

*** /dev/null    Sat Nov 23 01:34:52 2024
--- -    Sat Nov 23 01:35:06 2024
***************
*** 0 ****
--- 1,83 ----
+ ##
+ ##  mkdir -- Make one or more directories
+ ##  Copyright (c) 1996-2000 Ralf S. Engelschall <rse@engelschall.com>
+ ##  Originally written for public domain by Noah Friedman <friedman@prep.ai.mit.edu>
+ ##  Cleaned up and enhanced for shtool
+ ##
+ ##  This file is part of shtool and 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 of the License, or (at your option) any later version.
+ ##
+ ##  This file 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ ##  USA, or contact Ralf S. Engelschall <rse@engelschall.com>.
+ ##
+ 
+ str_tool="mkdir"
+ str_usage="[-t] [-f] [-p] [-m<mode>] <dir> [<dir> ...]"
+ arg_spec="1+"
+ opt_spec="t.f.p.m:"
+ opt_t=no
+ opt_f=no
+ opt_p=no
+ opt_m=""
+ 
+ . ./sh.common
+ 
+ errstatus=0
+ for p in ${1+"$@"}; do
+     #   if the directory already exists...
+     if [ -d "$p" ]; then
+         if [ ".$opt_f" = .no -a ".$opt_p" = .no ]; then
+             echo "$msgprefix:Error: directory already exists: $p" 1>&2
+             errstatus=1
+             break
+         else
+             continue
+         fi
+     fi
+     #   if the directory has to be created...
+     if [ ".$opt_p" = .no ]; then
+         if [ ".$opt_t" = .yes ]; then
+             echo "mkdir $p" 1>&2
+         fi
+         mkdir $p || errstatus=$?
+     else
+         #   the smart situation
+         set fnord `echo ":$p" |\
+                    sed -e 's/^:\//%/' \
+                        -e 's/^://' \
+                        -e 's/\// /g' \
+                        -e 's/^%/\//'`
+         shift
+         pathcomp=''
+         for d in ${1+"$@"}; do
+             pathcomp="$pathcomp$d"
+             case "$pathcomp" in
+                 -* ) pathcomp="./$pathcomp" ;;
+             esac
+             if [ ! -d "$pathcomp" ]; then
+                 if [ ".$opt_t" = .yes ]; then
+                     echo "mkdir $pathcomp" 1>&2
+                 fi
+                 mkdir $pathcomp || errstatus=$?
+                 if [ ".$opt_m" != . ]; then
+                     if [ ".$opt_t" = .yes ]; then
+                         echo "chmod $opt_m $pathcomp" 1>&2
+                     fi
+                     chmod $opt_m $pathcomp || errstatus=$?
+                 fi
+             fi
+             pathcomp="$pathcomp/"
+         done
+     fi
+ done
+ exit $errstatus
+ 


ossp-pkg/shtool/sh.mkln -> 1.9

*** /dev/null    Sat Nov 23 01:34:52 2024
--- -    Sat Nov 23 01:35:06 2024
***************
*** 0 ****
--- 1,162 ----
+ ##
+ ##  mkln -- Make link with calculation of relative paths
+ ##  Copyright (c) 1999-2000 Ralf S. Engelschall <rse@engelschall.com>
+ ##  Originally written for shtool
+ ##
+ ##  This file is part of shtool and 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 of the License, or (at your option) any later version.
+ ##
+ ##  This file 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ ##  USA, or contact Ralf S. Engelschall <rse@engelschall.com>.
+ ##
+ 
+ str_tool="mkln"
+ str_usage="[-t] [-f] [-s] <src-path> [<src-path> ...] <dst-path>"
+ arg_spec="2+"
+ opt_spec="t.f.s."
+ opt_t=no
+ opt_f=no
+ opt_s=no
+ 
+ . ./sh.common
+ 
+ args=$?
+ srcs=""
+ while [ $# -gt 1 ]; do
+     srcs="$srcs $1"
+     shift
+ done
+ dst="$1"
+ if [ ! -d $dst ]; then
+     if [ $args -gt 2 ]; then
+         echo "$msgprefix:Error: multiple sources not allowed when target isn't a directory" 1>&2
+         exit 1
+     fi
+ fi
+ 
+ #   determine link options
+ lnopt=""
+ if [ ".$opt_f" = .yes ]; then
+     lnopt="$lnopt -f"
+ fi
+ if [ ".$opt_s" = .yes ]; then
+     lnopt="$lnopt -s"
+ fi
+ 
+ #   iterate over sources
+ for src in $srcs; do
+     #   determine if one of the paths is an absolute path,
+     #   because then we _have_ to use an absolute symlink
+     oneisabs=0
+     srcisabs=0
+     dstisabs=0
+     case $src in
+         /* ) oneisabs=1; srcisabs=1 ;;
+     esac
+     case $dst in
+         /* ) oneisabs=1; dstisabs=1 ;;
+     esac
+ 
+     #   split source and destination into dir and base name
+     if [ -d $src ]; then
+         srcdir=`echo $src | sed -e 's;/*$;;'`
+         srcbase=""
+     else
+         srcdir=`echo  $src | sed -e 's;^[^/]*$;;' -e 's;^\(.*/\)[^/]*$;\1;' -e 's;\(.\)/$;\1;'`
+         srcbase=`echo $src | sed -e 's;.*/\([^/]*\)$;\1;'`
+     fi
+     if [ -d $dst ]; then
+         dstdir=`echo $dst | sed -e 's;/*$;;'`
+         dstbase=""
+     else
+         dstdir=`echo  $dst | sed -e 's;^[^/]*$;;' -e 's;^\(.*/\)[^/]*$;\1;' -e 's;\(.\)/$;\1;'`
+         dstbase=`echo $dst | sed -e 's;.*/\([^/]*\)$;\1;'`
+     fi
+ 
+     #   consistency check
+     if [ ".$dstdir" != . ]; then
+         if [ ! -d $dstdir ]; then
+             echo "$msgprefix:Error: destination directory not found: $dstdir" 1>&2
+             exit 1
+         fi
+     fi
+ 
+     #   make sure the source is reachable from the destination
+     if [ $dstisabs = 1 ]; then
+         if [ $srcisabs = 0 ]; then
+             if [ -d $srcdir ]; then
+                 srcdir="`cd $srcdir; pwd | sed -e 's;/*$;;'`"
+                 srcisabs=1
+                 oneisabs=1
+             fi
+         fi
+     fi
+ 
+     #   split away a common prefix
+     prefix=""
+     if [ ".$srcdir" = ".$dstdir" -a ".$srcdir" != . ]; then
+         prefix="$srcdir/"
+         srcdir=""
+         dstdir=""
+     else
+         while [ ".$srcdir" != . -a ".$dstdir" != . ]; do
+             presrc=`echo $srcdir | sed -e 's;^\([^/]*\)/.*;\1;'`
+             predst=`echo $dstdir | sed -e 's;^\([^/]*\)/.*;\1;'`
+             if [ ".$presrc" != ".$predst" ]; then
+                 break
+             fi
+             prefix="$prefix$presrc/"
+             srcdir=`echo $srcdir | sed -e 's;^[^/]*/*;;'`
+             dstdir=`echo $dstdir | sed -e 's;^[^/]*/*;;'`
+         done
+     fi
+ 
+     #   destination prefix is just the common prefix
+     dstpre="$prefix"
+ 
+     #   determine source prefix which is the reverse directory
+     #   step-up corresponding to the destination directory
+     srcpre=""
+     if [ $oneisabs = 0 ] || [ ".$prefix" != . -a ".$prefix" != ./ ]; then
+         pl="$dstdir/"
+         OIFS="$IFS"; IFS='/'
+         for pe in $pl; do
+             [ ".$pe" = . ] && continue
+             srcpre="../$srcpre"
+         done
+         IFS="$OIFS"
+     else
+         if [ $srcisabs = 1 ]; then
+             srcpre="$prefix"
+         fi
+     fi
+ 
+     #   determine destination symlink name
+     if [ ".$dstbase" = . ]; then
+         if [ ".$srcbase" != . ]; then
+             dstbase="$srcbase"
+         else
+             dstbase=`echo "$prefix$srcdir" | sed -e 's;/*$;;' -e 's;.*/\([^/]*\)$;\1;'`
+         fi
+     fi
+ 
+     #   now finalize source and destination directory paths
+     srcdir=`echo $srcdir | sed -e 's;\([^/]\)$;\1/;'`
+     dstdir=`echo $dstdir | sed -e 's;\([^/]\)$;\1/;'`
+ 
+     #   run the final link command
+     if [ ".$opt_t" = .yes ]; then
+         echo "ln$lnopt $srcpre$srcdir$srcbase $dstpre$dstdir$dstbase"
+     fi
+     eval ln$lnopt $srcpre$srcdir$srcbase $dstpre$dstdir$dstbase
+ done
+ 


ossp-pkg/shtool/sh.path 1.16 -> 1.17

--- sh.path      2000/06/30 16:39:07     1.16
+++ sh.path      2000/11/29 19:58:58     1.17
@@ -79,7 +79,7 @@
 
 #   MAGIC SITUATION
 #   Perl Interpreter (perl)
-if [ ".$opt_m" = .yes ] && [ ".$namelist" = .perl ]; then
+if [ ".$opt_m" = .yes  -a ".$namelist" = .perl ]; then
     rm -f $tmpfile
     touch $tmpfile
     found=0
@@ -88,7 +88,7 @@
         dir=`echo $dir | sed -e 's;/*$;;'`
         nc=99
         for name in perl perl5 miniperl; do
-             if [ $minusx "$dir/$name" ] && [ ! -d "$dir/$name" ]; then
+             if [ $minusx "$dir/$name" -a ! -d "$dir/$name" ]; then
                  perl="$dir/$name"
                  pv=`$perl -e 'printf("%.3f", $]);'`
                  echo "$pv:$pc:$nc:$perl" >>$tmpfile
@@ -109,7 +109,7 @@
 
 #   MAGIC SITUATION
 #   C pre-processor (cpp)
-if [ ".$opt_m" = .yes ] && [ ".$namelist" = .cpp ]; then
+if [ ".$opt_m" = .yes -a ".$namelist" = .cpp ]; then
     echo >$tmpfile.c "#include <assert.h>"
     echo >>$tmpfile.c "Syntax Error"
     #   1. try the standard cc -E approach
@@ -125,7 +125,7 @@
             #   3. try a standalone cpp command in path and lib dirs
             for path in $paths /lib /usr/lib /usr/local/lib; do
                 path=`echo $path | sed -e 's;/*$;;'`
-                if [ $minusx "$path/cpp" ] && [ ! -d "$path/cpp" ]; then
+                if [ $minusx "$path/cpp" -a ! -d "$path/cpp" ]; then
                     cpp="$path/cpp"
                     break
                 fi
@@ -154,7 +154,7 @@
     #   iterate over paths
     for path in $paths; do
         path=`echo $path | sed -e 's;/*$;;'`
-        if [ $minusx "$path/$name" ] && [ ! -d "$path/$name" ]; then
+        if [ $minusx "$path/$name" -a ! -d "$path/$name" ]; then
             if [ ".$opt_s" != .yes ]; then
                 echo "$path/$name"
             fi


ossp-pkg/shtool/sh.tarball 1.11 -> 1.12

--- sh.tarball   2000/10/05 12:02:06     1.11
+++ sh.tarball   2000/11/29 19:58:58     1.12
@@ -57,7 +57,7 @@
     for tool in `echo $tools | sed -e 's/,/ /g'`; do
         #   iterate over paths
         for path in $paths; do
-            if [ $minusx "$path/$tool" ] && [ ! -d "$path/$tool" ]; then
+            if [ $minusx "$path/$tool" -a ! -d "$path/$tool" ]; then
                 eval "prg_${prg}=\"$path/$tool\""
                 break
             fi

CVSTrac 2.0.1