head	1.1;
access;
symbols
	pkgsrc-2026Q1:1.1.0.178
	pkgsrc-2026Q1-base:1.1
	pkgsrc-2025Q4:1.1.0.176
	pkgsrc-2025Q4-base:1.1
	pkgsrc-2025Q3:1.1.0.174
	pkgsrc-2025Q3-base:1.1
	pkgsrc-2025Q2:1.1.0.172
	pkgsrc-2025Q2-base:1.1
	pkgsrc-2025Q1:1.1.0.170
	pkgsrc-2025Q1-base:1.1
	pkgsrc-2024Q4:1.1.0.168
	pkgsrc-2024Q4-base:1.1
	pkgsrc-2024Q3:1.1.0.166
	pkgsrc-2024Q3-base:1.1
	pkgsrc-2024Q2:1.1.0.164
	pkgsrc-2024Q2-base:1.1
	pkgsrc-2024Q1:1.1.0.162
	pkgsrc-2024Q1-base:1.1
	pkgsrc-2023Q4:1.1.0.160
	pkgsrc-2023Q4-base:1.1
	pkgsrc-2023Q3:1.1.0.158
	pkgsrc-2023Q3-base:1.1
	pkgsrc-2023Q2:1.1.0.156
	pkgsrc-2023Q2-base:1.1
	pkgsrc-2023Q1:1.1.0.154
	pkgsrc-2023Q1-base:1.1
	pkgsrc-2022Q4:1.1.0.152
	pkgsrc-2022Q4-base:1.1
	pkgsrc-2022Q3:1.1.0.150
	pkgsrc-2022Q3-base:1.1
	pkgsrc-2022Q2:1.1.0.148
	pkgsrc-2022Q2-base:1.1
	pkgsrc-2022Q1:1.1.0.146
	pkgsrc-2022Q1-base:1.1
	pkgsrc-2021Q4:1.1.0.144
	pkgsrc-2021Q4-base:1.1
	pkgsrc-2021Q3:1.1.0.142
	pkgsrc-2021Q3-base:1.1
	pkgsrc-2021Q2:1.1.0.140
	pkgsrc-2021Q2-base:1.1
	pkgsrc-2021Q1:1.1.0.138
	pkgsrc-2021Q1-base:1.1
	pkgsrc-2020Q4:1.1.0.136
	pkgsrc-2020Q4-base:1.1
	pkgsrc-2020Q3:1.1.0.134
	pkgsrc-2020Q3-base:1.1
	pkgsrc-2020Q2:1.1.0.130
	pkgsrc-2020Q2-base:1.1
	pkgsrc-2020Q1:1.1.0.110
	pkgsrc-2020Q1-base:1.1
	pkgsrc-2019Q4:1.1.0.132
	pkgsrc-2019Q4-base:1.1
	pkgsrc-2019Q3:1.1.0.128
	pkgsrc-2019Q3-base:1.1
	pkgsrc-2019Q2:1.1.0.126
	pkgsrc-2019Q2-base:1.1
	pkgsrc-2019Q1:1.1.0.124
	pkgsrc-2019Q1-base:1.1
	pkgsrc-2018Q4:1.1.0.122
	pkgsrc-2018Q4-base:1.1
	pkgsrc-2018Q3:1.1.0.120
	pkgsrc-2018Q3-base:1.1
	pkgsrc-2018Q2:1.1.0.118
	pkgsrc-2018Q2-base:1.1
	pkgsrc-2018Q1:1.1.0.116
	pkgsrc-2018Q1-base:1.1
	pkgsrc-2017Q4:1.1.0.114
	pkgsrc-2017Q4-base:1.1
	pkgsrc-2017Q3:1.1.0.112
	pkgsrc-2017Q3-base:1.1
	pkgsrc-2017Q2:1.1.0.108
	pkgsrc-2017Q2-base:1.1
	pkgsrc-2017Q1:1.1.0.106
	pkgsrc-2017Q1-base:1.1
	pkgsrc-2016Q4:1.1.0.104
	pkgsrc-2016Q4-base:1.1
	pkgsrc-2016Q3:1.1.0.102
	pkgsrc-2016Q3-base:1.1
	pkgsrc-2016Q2:1.1.0.100
	pkgsrc-2016Q2-base:1.1
	pkgsrc-2016Q1:1.1.0.98
	pkgsrc-2016Q1-base:1.1
	pkgsrc-2015Q4:1.1.0.96
	pkgsrc-2015Q4-base:1.1
	pkgsrc-2015Q3:1.1.0.94
	pkgsrc-2015Q3-base:1.1
	pkgsrc-2015Q2:1.1.0.92
	pkgsrc-2015Q2-base:1.1
	pkgsrc-2015Q1:1.1.0.90
	pkgsrc-2015Q1-base:1.1
	pkgsrc-2014Q4:1.1.0.88
	pkgsrc-2014Q4-base:1.1
	pkgsrc-2014Q3:1.1.0.86
	pkgsrc-2014Q3-base:1.1
	pkgsrc-2014Q2:1.1.0.84
	pkgsrc-2014Q2-base:1.1
	pkgsrc-2014Q1:1.1.0.82
	pkgsrc-2014Q1-base:1.1
	pkgsrc-2013Q4:1.1.0.80
	pkgsrc-2013Q4-base:1.1
	pkgsrc-2013Q3:1.1.0.78
	pkgsrc-2013Q3-base:1.1
	pkgsrc-2013Q2:1.1.0.76
	pkgsrc-2013Q2-base:1.1
	pkgsrc-2013Q1:1.1.0.74
	pkgsrc-2013Q1-base:1.1
	pkgsrc-2012Q4:1.1.0.72
	pkgsrc-2012Q4-base:1.1
	pkgsrc-2012Q3:1.1.0.70
	pkgsrc-2012Q3-base:1.1
	pkgsrc-2012Q2:1.1.0.68
	pkgsrc-2012Q2-base:1.1
	pkgsrc-2012Q1:1.1.0.66
	pkgsrc-2012Q1-base:1.1
	pkgsrc-2011Q4:1.1.0.64
	pkgsrc-2011Q4-base:1.1
	pkgsrc-2011Q3:1.1.0.62
	pkgsrc-2011Q3-base:1.1
	pkgsrc-2011Q2:1.1.0.60
	pkgsrc-2011Q2-base:1.1
	pkgsrc-2011Q1:1.1.0.58
	pkgsrc-2011Q1-base:1.1
	pkgsrc-2010Q4:1.1.0.56
	pkgsrc-2010Q4-base:1.1
	pkgsrc-2010Q3:1.1.0.54
	pkgsrc-2010Q3-base:1.1
	pkgsrc-2010Q2:1.1.0.52
	pkgsrc-2010Q2-base:1.1
	pkgsrc-2010Q1:1.1.0.50
	pkgsrc-2010Q1-base:1.1
	pkgsrc-2009Q4:1.1.0.48
	pkgsrc-2009Q4-base:1.1
	pkgsrc-2009Q3:1.1.0.46
	pkgsrc-2009Q3-base:1.1
	pkgsrc-2009Q2:1.1.0.44
	pkgsrc-2009Q2-base:1.1
	pkgsrc-2009Q1:1.1.0.42
	pkgsrc-2009Q1-base:1.1
	pkgsrc-2008Q4:1.1.0.40
	pkgsrc-2008Q4-base:1.1
	pkgsrc-2008Q3:1.1.0.38
	pkgsrc-2008Q3-base:1.1
	cube-native-xorg:1.1.0.36
	cube-native-xorg-base:1.1
	pkgsrc-2008Q2:1.1.0.34
	pkgsrc-2008Q2-base:1.1
	cwrapper-base:1.1
	cwrapper:1.1.0.32
	pkgsrc-2008Q1:1.1.0.30
	pkgsrc-2008Q1-base:1.1
	pkgsrc-2007Q4:1.1.0.28
	pkgsrc-2007Q4-base:1.1
	pkgsrc-2007Q3:1.1.0.26
	pkgsrc-2007Q3-base:1.1
	pkgsrc-2007Q2:1.1.0.24
	pkgsrc-2007Q2-base:1.1
	pkgsrc-2007Q1:1.1.0.22
	pkgsrc-2007Q1-base:1.1
	pkgsrc-2006Q4:1.1.0.20
	pkgsrc-2006Q4-base:1.1
	pkgsrc-2006Q3:1.1.0.18
	pkgsrc-2006Q3-base:1.1
	pkgsrc-2006Q2:1.1.0.16
	pkgsrc-2006Q2-base:1.1
	pkgsrc-2006Q1:1.1.0.14
	pkgsrc-2006Q1-base:1.1
	pkgsrc-2005Q4:1.1.0.12
	pkgsrc-2005Q4-base:1.1
	pkgsrc-2005Q3:1.1.0.10
	pkgsrc-2005Q3-base:1.1
	pkgsrc-2005Q2:1.1.0.8
	pkgsrc-2005Q2-base:1.1
	pkgsrc-2005Q1:1.1.0.6
	pkgsrc-2005Q1-base:1.1
	pkgsrc-2004Q4:1.1.0.4
	pkgsrc-2004Q4-base:1.1
	pkgsrc-2004Q3:1.1.0.2
	pkgsrc-2004Q3-base:1.1;
locks; strict;
comment	@# @;


1.1
date	2004.08.27.03.06.07;	author jlam;	state Exp;
branches;
next	;


desc
@@


1.1
log
@autconfiscate, and add a rcorder2nbcompat script to ease importing from
src HEAD.
@
text
@:
# NAME:
#	install.sh - portable version of install(1)
#
# SYNOPSIS:
#	install [-CNcs] [-f flags] [-i errs] [-o owner] [-g group] [-m mode] file1 file2 ...
#	install -d  [-i errs] [-o owner] [-g group] [-m mode] directory ...
#
# DESCRIPTION:
#	Compatible with BSD install(1).  Except that '-c' is always
#	true and we always move an already installed target aside as
#	this is important on many systems.  Recent BSD install(1)
#	versions have a '-b' option for this.
#	
#
# OPTIONS:
#	-b	move previous target file aside (always true).
#
#	-B "suffix"
#		use "suffix" instead of .old for saving existing target.
#	
#	-c	copy rather than move the file into place (always true).
#
#	-C	compare.  Only install if target is missing or
#		different.
#
#	-N	newer. Only install if target is missing or older.
#	
#	-s	strip target
#
#	-o "owner"
#		make target owned by "owner"
#
#	-g "group"
#		make target group owned by "group"
#
#	-m "mode"
#		set permissions to "mode"
#
#	-f "flags"
#		Pass "flags" onto chflags(1)
#		
#	-i "errs"
#		Ignore errors from steps indicated by "errs" (``s,o,g,m'').
#
# BUGS:
#	The '-i' option is to save your sanity when 'bsd.prog.mk'
#	insists on haveing a '-o' "owner" option which is doomed to
#	fail on many systems.  We ignore '-b', '-B' and '-c' options.
#	
# AUTHOR:
#	Simon J. Gerraty <sjg@@quick.com.au>
#

# RCSid:
#	$Id: install-sh,v 1.1.1.1 2003/08/18 17:34:59 agc Exp $
#
#	@@(#) Copyright (c) 1993 Simon J. Gerraty
#
#	This file is provided in the hope that it will
#	be of use.  There is absolutely NO WARRANTY.
#	Permission to copy, redistribute or otherwise
#	use this file is hereby granted provided that 
#	the above copyright notice and this notice are
#	left intact. 
#      
#	Please send copies of changes and bug-fixes to:
#	sjg@@quick.com.au
#

set -- `getopt B:bpxCNcsdo:g:m:i:f: $*`

Mydir=`dirname $0`
[ -s $Mydir/.installrc ] && . $Mydir/.installrc

owner=:
group=:
mode=:
strip=:
mkdirs=
compare=:
newer=:
chflags=:
LS1=
CP_P=

while [ $# -gt 1 ]
do
	case $1 in
	--)	shift; break;;
	-p)	CP_P=-p;;
	-x)	set -x;;
	-B)	OLD_EXT=$2; shift;;
	-C)	compare=Different;;
	-N)	newer=Newer;
		# check if /bin/ls supports -1
		/bin/ls -1 $0 >/dev/null 2>&1 && LS1=1
		;;
	-o)	owner="${CHOWN:-chown} $2 "; shift;;
	-g)	group="${CHGRP:-chgrp} $2 "; shift;;
	-m)	mode="${CHMOD:-chmod} $2 "; shift;;
	-s)	strip=${STRIP:-strip};;
	-d)	mkdirs="mkdir -p";;
	-i)	ignore_err="$ignore_err$2"; shift;;
	-f)	chflags="${CHFLAGS:-chflags} $2 "; shift;;
	esac
	shift
done

Newer() {
	n=`/bin/ls -t$LS1 $* 2>/dev/null | head -1`
	[ $1 = $n ]
}

Different() {
	cmp -s $*
	[ $? != 0 ]
}

Err() {
	case "$ignore_err" in
	*$1*)	;;
	*)	exit 1;;
	esac
}

Setem() {
	# the order is important
	if [ ! -d $1 ]; then
		$strip $1 || Err s
	fi
	$group $1 || Err g
	$owner $1 || Err o
	$mode  $1 || Err m
	$chflags  $1 || Err f
	return 0
}

# a bug in HP-UX's /bin/sh, means we need to re-set $*
# after any calls to add_path()
args="$*"

# all this just for chown!
add_path () { [ -d $1 ] && eval ${2:-PATH}="\$${2:-PATH}:$1"; }
add_path /etc
add_path /usr/etc
add_path /sbin
add_path /usr/sbin

# restore saved $*
set -- $args

# make directories if needed
# and ensure mode etc are as desired
if [ "$mkdirs" ]; then
	for d in $*
	do
		[ ! -d $d ] && $mkdirs $d
		Setem $d
	done
	exit 0			# that's all we do
fi

# install files
if [ $# -gt 2 ]; then
	dest_dir=yes
elif [ $# -eq 1 ]; then
	echo "what should I do with $*?" >&2
	exit 1
fi

# get list of files
while [ $# -gt 1 ]
do
	files="$files $1"
	shift
done
# last one is dest
dest=$1
shift


if [ "$dest_dir" = yes -a  ! -d $dest ]; then
	echo "no directory $dest" >&2
	exit 1
fi

for f in $files
do
	b=`basename $f`
	if [ -d $dest ]; then
		t=$dest/$b
	else
		t=$dest
	fi
	$newer $f $t || continue
	$compare $f $t || continue
	[ -f $t ] && { mv -f $t $t.old || exit 1; }
	{ cp $CP_P $f $t && Setem $t; } || exit 1
done
exit 0
@
