pkgsrc/pkgtools/pkg_install/files/pi2nbcompat
wiz d69676ddee Sync with base system as of Sat Nov 5 13:19:32 UTC 2005.
Welcome to 20051103!
Now with "automatic" support.
2005-11-05 13:20:08 +00:00

141 lines
3.9 KiB
Bash
Executable file

#!/bin/sh
#
# $NetBSD: pi2nbcompat,v 1.1 2005/11/05 13:20:08 wiz Exp $
#
# Copyright (c) 2003 The NetBSD Foundation, Inc.
# All rights reserved.
#
# This code is derived from software contributed to The NetBSD Foundation
# by Johnny C. Lam.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
# must display the following acknowledgement:
# This product includes software developed by the NetBSD
# Foundation, Inc. and its contributors.
# 4. Neither the name of The NetBSD Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
if [ $# -lt 2 ]; then echo "src2nbcompat src dest"; exit 1; fi
src=$1
dest=$2
case $src in
/*) ;;
*) src=`pwd`/$src ;;
esac
case $dest in
/*) ;;
*) dest=`pwd`/$dest ;;
esac
make_dir()
{
_d="$1"
_destdir="$2"
_newd=${3-`echo $_d | sed 's,^\./,,'`}
case $_newd in
*CVS)
;;
.)
;;
*)
mkdir -p $_destdir/$_newd
;;
esac
}
copy_file()
{
_f="$1"
_destdir="$2"
_newf=${3-`echo $_f | sed 's,^\./,,'`}
case $_newf in
*CVS/*)
# Skip copying over any CVS information.
;;
*Makefile|*Makefile.inc)
# Skip copying over the Makefiles since we'll be using
# a GNU autoconf-based build infrastructure.
;;
*.sh)
# Assume shell scripts will require variable substitution
# by the GNU configure script.
#
cp $_f $_destdir/$_newf.in
;;
*.[1-9])
# Copy the manpage over, and generate the catpage.
cp $_newf $_destdir/$_newf.tmp
if [ -f $_destdir/$_newf ] && \
diff -q -I "\$NetBSD.*\$" $_destdir/$_newf $_destdir/$_newf.tmp >/dev/null; then
rm -f $_destdir/$_newf.tmp
else
mv -f $_destdir/$_newf.tmp $_destdir/$_newf
_catf=`echo $_newf | sed 's,\.\([1-9]\),.cat\1,'`
nroff -mandoc $_newf > $_destdir/$_catf
fi
;;
*)
# Everything else just gets copied verbatim.
cp $_newf $_destdir/$_newf.tmp
if [ -f $_destdir/$_newf ] && \
diff -q -I "\$NetBSD.*\$" $_destdir/$_newf $_destdir/$_newf.tmp >/dev/null; then
rm -f $_destdir/$_newf.tmp
else
mv -f $_destdir/$_newf.tmp $_destdir/$_newf
fi
;;
esac
}
if [ -f "$src" ]; then
srcdir=`dirname $src`
destdir=`dirname $dest`
else
srcdir="$src"
destdir="$dest"
fi
echo "Preparing directory $destdir"
mkdir -p $destdir
if [ -f "$src" ]; then
echo "Copying $src to $dest"
cd $srcdir
copy_file `basename $src` $destdir `basename $dest`
else
echo "Copying files and directories to $destdir"
cd $srcdir
find . -type d -print |
while read d; do
make_dir $d $destdir
done
find . \! -type d -print |
while read f; do
copy_file $f $destdir
done
fi